In [1]:
import warnings
warnings.simplefilter(action='ignore')

import pandas as pd
import numpy as np
from math import *
%matplotlib notebook
import matplotlib.pyplot as plt
import plotly.express as px
import plotly.figure_factory as ff
import scipy.stats as sp
from scipy import interpolate
from scipy.spatial import cKDTree
from datetime import datetime
from statsmodels.tsa.stattools import adfuller
from statsmodels.tsa.seasonal import seasonal_decompose

pd.set_option('display.max_columns', 1000)
pd.set_option("display.max_rows", 3000)       

Filtering uninformative columns

Using 2018, 2019 accidents report data for the maximum relevance to current time frame, in terms of accident event details.

In [2]:
acc = pd.read_csv('./data/dftRoadSafetyData_Accidents_2018.csv')
ac1 = pd.read_csv('./data/Road Safety Data - Accidents 2019.csv')
acc = pd.concat([acc, ac1])
print(acc.shape)
display(acc.head())
(240171, 32)
Accident_Index Location_Easting_OSGR Location_Northing_OSGR Longitude Latitude Police_Force Accident_Severity Number_of_Vehicles Number_of_Casualties Date Day_of_Week Time Local_Authority_(District) Local_Authority_(Highway) 1st_Road_Class 1st_Road_Number Road_Type Speed_limit Junction_Detail Junction_Control 2nd_Road_Class 2nd_Road_Number Pedestrian_Crossing-Human_Control Pedestrian_Crossing-Physical_Facilities Light_Conditions Weather_Conditions Road_Surface_Conditions Special_Conditions_at_Site Carriageway_Hazards Urban_or_Rural_Area Did_Police_Officer_Attend_Scene_of_Accident LSOA_of_Accident_Location
0 2018010080971 529150.0 182270.0 -0.139737 51.524587 1 3 2 2 01/01/2018 2 01:30 2 E09000007 3 501 3 30 0 -1 -1 0 0 0 4 1 1 0 0 1 1 E01000854
1 2018010080973 542020.0 184290.0 0.046471 51.539651 1 3 1 1 01/01/2018 2 00:50 17 E09000025 4 165 6 30 2 4 6 0 0 0 4 1 1 0 0 1 1 E01003531
2 2018010080974 531720.0 182910.0 -0.102474 51.529746 1 3 2 1 01/01/2018 2 00:45 3 E09000019 3 1 6 20 6 4 5 0 0 5 4 1 1 0 0 1 1 E01002723
3 2018010080981 541450.0 183220.0 0.037828 51.530179 1 2 2 1 01/01/2018 2 03:00 17 E09000025 4 167 3 30 7 2 3 124 0 5 4 2 2 0 0 1 1 E01003492
4 2018010080982 543580.0 176500.0 0.065781 51.469258 1 2 2 2 01/01/2018 2 02:20 6 E09000011 3 207 6 30 0 -1 -1 0 0 0 4 1 2 0 0 1 1 E01001682

The latitude and longitude give accurate location of each accident event and the LSOA- Lower Layer Super Output Area are a geographic hierarchy designed to improve the reporting of small area statistics in England and Wales. LSOAs have an average population of 1500 people or 650 households and consist of constituent Output Areas. Output Areas are a finer division of geographical area and consist of 310 households on an average.
Thus, keeping only LSOA of accident location and (Lat, Long) features for geo-location details of accident events and dropping - (Local_Authority_(District), Local_Authority_(Highway), 1st_Road_Number, 2nd_Road_Number)

Police Force gives information about the region wise police force that was responsible for reporting and investigating the event. Did_Police_Officer_Attend_Scene_of_Accident is a binary valued variable that gives post-event information, which is inconsequential. Thus, dropping these.

Number_of_Vehicles and Number_of_Casualties are features that give information about the specific details of the accident and not about anything that may help establish causality or correlation between the environment and the chances of an accident to occur.

Date, Day_of_Week and Time help find patterns and correlations between specific triggers for accidents such as festive seasons, peak traffic timings at rush hour, day and time of the week that are prone to more accidents due to certain causal factors.

1st_Road_Class, Road_Type, Junction_Detail, Junction_Control, 2nd_Road_Class, Road_Surface_Conditions, Special_Conditions_at_Site, Urban_or_Rural_Area give information about the finer details of the location of accidents that may act in conjunction to help identify patterns and alert the algorithm about potential risks of an accident. For eg: The predictive algorithm may identify that A(M) motorway roads with a roundabout or a staggered junction with damp road surface conditions are more prone to severe accidents than their counterparts.

Similarly, Light_Conditions and Weather_Conditions also provide information about climatic conditions that make certain scenarios more prone to accidents than others.

In [3]:
acc.columns
Out[3]:
Index(['Accident_Index', 'Location_Easting_OSGR', 'Location_Northing_OSGR',
       'Longitude', 'Latitude', 'Police_Force', 'Accident_Severity',
       'Number_of_Vehicles', 'Number_of_Casualties', 'Date', 'Day_of_Week',
       'Time', 'Local_Authority_(District)', 'Local_Authority_(Highway)',
       '1st_Road_Class', '1st_Road_Number', 'Road_Type', 'Speed_limit',
       'Junction_Detail', 'Junction_Control', '2nd_Road_Class',
       '2nd_Road_Number', 'Pedestrian_Crossing-Human_Control',
       'Pedestrian_Crossing-Physical_Facilities', 'Light_Conditions',
       'Weather_Conditions', 'Road_Surface_Conditions',
       'Special_Conditions_at_Site', 'Carriageway_Hazards',
       'Urban_or_Rural_Area', 'Did_Police_Officer_Attend_Scene_of_Accident',
       'LSOA_of_Accident_Location'],
      dtype='object')
In [4]:
acc = acc[[
    'Accident_Index', 'LSOA_of_Accident_Location', 'Longitude', 'Latitude',
    'Date', 'Day_of_Week', 'Time', '1st_Road_Class', 'Road_Type',
    'Speed_limit', 'Junction_Detail', 'Junction_Control', '2nd_Road_Class',
    'Pedestrian_Crossing-Human_Control',
    'Pedestrian_Crossing-Physical_Facilities', 'Light_Conditions',
    'Weather_Conditions', 'Road_Surface_Conditions',
    'Special_Conditions_at_Site', 'Carriageway_Hazards', 'Urban_or_Rural_Area',
    'Accident_Severity'
]]

NaN val percentages for filtering

In [5]:
print(acc.shape)
acc.isnull().mean()*100
(240171, 22)
Out[5]:
Accident_Index                             0.000000
LSOA_of_Accident_Location                  5.062643
Longitude                                  0.034559
Latitude                                   0.034559
Date                                       0.000000
Day_of_Week                                0.000000
Time                                       0.031644
1st_Road_Class                             0.000000
Road_Type                                  0.000000
Speed_limit                                0.000000
Junction_Detail                            0.000000
Junction_Control                           0.000000
2nd_Road_Class                             0.000000
Pedestrian_Crossing-Human_Control          0.000000
Pedestrian_Crossing-Physical_Facilities    0.000000
Light_Conditions                           0.000000
Weather_Conditions                         0.000000
Road_Surface_Conditions                    0.000000
Special_Conditions_at_Site                 0.000000
Carriageway_Hazards                        0.000000
Urban_or_Rural_Area                        0.000000
Accident_Severity                          0.000000
dtype: float64
In [6]:
#dropping nan vals
acc.dropna(inplace=True)
acc.reset_index(drop=True, inplace=True)
acc.head()
Out[6]:
Accident_Index LSOA_of_Accident_Location Longitude Latitude Date Day_of_Week Time 1st_Road_Class Road_Type Speed_limit Junction_Detail Junction_Control 2nd_Road_Class Pedestrian_Crossing-Human_Control Pedestrian_Crossing-Physical_Facilities Light_Conditions Weather_Conditions Road_Surface_Conditions Special_Conditions_at_Site Carriageway_Hazards Urban_or_Rural_Area Accident_Severity
0 2018010080971 E01000854 -0.139737 51.524587 01/01/2018 2 01:30 3 3 30 0 -1 -1 0 0 4 1 1 0 0 1 3
1 2018010080973 E01003531 0.046471 51.539651 01/01/2018 2 00:50 4 6 30 2 4 6 0 0 4 1 1 0 0 1 3
2 2018010080974 E01002723 -0.102474 51.529746 01/01/2018 2 00:45 3 6 20 6 4 5 0 5 4 1 1 0 0 1 3
3 2018010080981 E01003492 0.037828 51.530179 01/01/2018 2 03:00 4 3 30 7 2 3 0 5 4 2 2 0 0 1 2
4 2018010080982 E01001682 0.065781 51.469258 01/01/2018 2 02:20 3 6 30 0 -1 -1 0 0 4 1 2 0 0 1 2

Exploring Features for relevance

In [7]:
keys = []
cols = [
    'Day of Week', '1st Road Class', 'Road Type', 'Speed Limit', 'Junction Detail',
    'Junction Control', '2nd Road Class', 'Ped Cross - Human',
    'Ped Cross - Physical', 'Light Conditions',
    'Weather', 'Road Surface',
    'Special Conditions at Site', 'Carriageway Hazards', 'Urban Rural',
    'Accident Severity'
]
for name in cols:
    keys.append(pd.read_excel(f'./data/keys/variable lookup_{name}.xls'))
In [8]:
acc.columns
Out[8]:
Index(['Accident_Index', 'LSOA_of_Accident_Location', 'Longitude', 'Latitude',
       'Date', 'Day_of_Week', 'Time', '1st_Road_Class', 'Road_Type',
       'Speed_limit', 'Junction_Detail', 'Junction_Control', '2nd_Road_Class',
       'Pedestrian_Crossing-Human_Control',
       'Pedestrian_Crossing-Physical_Facilities', 'Light_Conditions',
       'Weather_Conditions', 'Road_Surface_Conditions',
       'Special_Conditions_at_Site', 'Carriageway_Hazards',
       'Urban_or_Rural_Area', 'Accident_Severity'],
      dtype='object')
In [9]:
repl_cols = [
    'Day_of_Week', '1st_Road_Class', 'Road_Type', 'Speed_limit', 'Junction_Detail',
    'Junction_Control', '2nd_Road_Class', 'Pedestrian_Crossing-Human_Control',
    'Pedestrian_Crossing-Physical_Facilities', 'Light_Conditions',
    'Weather_Conditions', 'Road_Surface_Conditions',
    'Special_Conditions_at_Site', 'Carriageway_Hazards', 'Urban_or_Rural_Area',
    'Accident_Severity'
]
for i in range(len(repl_cols)):
    acc = acc.replace({
        repl_cols[i]:
        dict([(i, a) for i, a in zip(keys[i]['code'], keys[i]['label'])])
    })

acc.head()
Out[9]:
Accident_Index LSOA_of_Accident_Location Longitude Latitude Date Day_of_Week Time 1st_Road_Class Road_Type Speed_limit Junction_Detail Junction_Control 2nd_Road_Class Pedestrian_Crossing-Human_Control Pedestrian_Crossing-Physical_Facilities Light_Conditions Weather_Conditions Road_Surface_Conditions Special_Conditions_at_Site Carriageway_Hazards Urban_or_Rural_Area Accident_Severity
0 2018010080971 E01000854 -0.139737 51.524587 01/01/2018 Monday 01:30 A Dual carriageway 30 MPH Not at junction or within 20 metres Data missing or out of range -1 None within 50 metres No physical crossing facilities within 50 metres Darkness - lights lit Fine no high winds Dry None None Urban Slight
1 2018010080973 E01003531 0.046471 51.539651 01/01/2018 Monday 00:50 B Single carriageway 30 MPH Mini-roundabout Give way or uncontrolled Unclassified None within 50 metres No physical crossing facilities within 50 metres Darkness - lights lit Fine no high winds Dry None None Urban Slight
2 2018010080974 E01002723 -0.102474 51.529746 01/01/2018 Monday 00:45 A Single carriageway 20 MPH Crossroads Give way or uncontrolled C None within 50 metres Pedestrian phase at traffic signal junction Darkness - lights lit Fine no high winds Dry None None Urban Slight
3 2018010080981 E01003492 0.037828 51.530179 01/01/2018 Monday 03:00 B Dual carriageway 30 MPH More than 4 arms (not roundabout) Auto traffic signal A None within 50 metres Pedestrian phase at traffic signal junction Darkness - lights lit Raining no high winds Wet or damp None None Urban Serious
4 2018010080982 E01001682 0.065781 51.469258 01/01/2018 Monday 02:20 A Single carriageway 30 MPH Not at junction or within 20 metres Data missing or out of range -1 None within 50 metres No physical crossing facilities within 50 metres Darkness - lights lit Fine no high winds Wet or damp None None Urban Serious
In [10]:
for col in acc.columns[7:]:
    print(col, '\n', acc[col].value_counts(), '\n')
1st_Road_Class 
 A               100283
Unclassified     79837
B                27024
C                12699
Motorway          7474
A(M)               624
Name: 1st_Road_Class, dtype: int64 

Road_Type 
 Single carriageway    164413
Dual carriageway       36118
Roundabout             13811
One way street          5844
Unknown                 4446
Slip road               3309
Name: Road_Type, dtype: int64 

Speed_limit 
 30 MPH                          136912
60 MPH                           26687
20 MPH                           21263
40 MPH                           19540
70 MPH                           14154
50 MPH                            9306
Data missing or out of range        79
Name: Speed_limit, dtype: int64 

Junction_Detail 
 Not at junction or within 20 metres    95101
T or staggered junction                66628
Crossroads                             21643
Roundabout                             18296
Other junction                          9567
Private drive or entrance               5283
Mini-roundabout                         3176
Slip road                               3158
More than 4 arms (not roundabout)       2926
Data missing or out of range            2163
Name: Junction_Detail, dtype: int64 

Junction_Control 
 Data missing or out of range           101221
Give way or uncontrolled                99142
Auto traffic signal                     25323
Stop sign                                1446
Authorised person                         805
Not at junction or within 20 metres         4
Name: Junction_Control, dtype: int64 

2nd_Road_Class 
 -1              95280
Unclassified    91100
A               23710
B                8887
C                7736
Motorway         1093
A(M)              135
Name: 2nd_Road_Class, dtype: int64 

Pedestrian_Crossing-Human_Control 
 None within 50 metres                 218087
Data missing or out of range            6783
Control by other authorised person      2239
Control by school crossing patrol        832
Name: Pedestrian_Crossing-Human_Control, dtype: int64 

Pedestrian_Crossing-Physical_Facilities 
 No physical crossing facilities within 50 metres                             174985
Pedestrian phase at traffic signal junction                                   18356
Pelican, puffin, toucan or similar non-junction pedestrian light crossing     12964
Zebra                                                                          9191
Data missing or out of range                                                   6074
Central refuge                                                                 5862
Footbridge or subway                                                            509
Name: Pedestrian_Crossing-Physical_Facilities, dtype: int64 

Light_Conditions 
 Daylight                       162950
Darkness - lights lit           47075
Darkness - no lighting          11227
Darkness - lighting unknown      5025
Darkness - lights unlit          1664
Name: Light_Conditions, dtype: int64 

Weather_Conditions 
 Fine no high winds       182273
Raining no high winds     26294
Unknown                    6883
Other                      5429
Raining + high winds       2443
Fine + high winds          2186
Snowing no high winds      1244
Fog or mist                 792
Snowing + high winds        397
Name: Weather_Conditions, dtype: int64 

Road_Surface_Conditions 
 Dry                             165209
Wet or damp                      56469
Data missing or out of range      2542
Frost or ice                      2290
Snow                              1161
Flood over 3cm. deep               270
Name: Road_Surface_Conditions, dtype: int64 

Special_Conditions_at_Site 
 None                                          219760
Data missing or out of range                    3332
Roadworks                                       2541
Mud                                              543
Auto traffic signal - out                        534
Road surface defective                           481
Road sign or marking defective or obscured       360
Oil or diesel                                    314
Auto signal part defective                        76
Name: Special_Conditions_at_Site, dtype: int64 

Carriageway_Hazards 
 None                                               221125
Data missing or out of range                         2871
Other object on road                                 1976
Any animal in carriageway (except ridden horse)       640
Vehicle load on road                                  515
Pedestrian in carriageway - not injured               426
Previous accident                                     388
Name: Carriageway_Hazards, dtype: int64 

Urban_or_Rural_Area 
 Urban    154682
Rural     73259
Name: Urban_or_Rural_Area, dtype: int64 

Accident_Severity 
 Slight     181445
Serious     43478
Fatal        3018
Name: Accident_Severity, dtype: int64 

In [11]:
# Majorly single valued thus uninformative 
acc = acc.drop(columns=[
    'Junction_Control', '2nd_Road_Class', 'Pedestrian_Crossing-Human_Control',
    'Pedestrian_Crossing-Physical_Facilities', 'Special_Conditions_at_Site',
    'Carriageway_Hazards'
])
In [12]:
# Adding unknown to mode of data of R.V.
acc = acc.replace({
    '1st_Road_Class': {
        'A(M)': 'Motorway'
    },
    'Road_Type': {
        'Unknown': 'Single carriageway'
    },
    'Speed_limit': {
        'Data missing or out of range': '30 MPH'
    },
    'Junction_Detail': {
        'Data missing or out of range': 'Not at junction or within 20 metres'
    },
    'Weather_Conditions': {
        'Unknown': 'Fine no high winds'
    },
    'Road_Surface_Conditions': {
        'Data missing or out of range': 'Dry'
    }    
})

Road Details

In order to understand and investigate the correlation between the Roads-related factors and Accident severity, the classes, types and conditions of roads are studied in conjunction with the severity of the events.

In [13]:
def P(acc, col, cond):
    return pd.DataFrame(
    acc.groupby(cond)[col].value_counts(
        normalize=True).unstack()).reset_index()

def chart_it(prob):
    df = prob.melt(id_vars = prob.columns[0], value_vars = prob.columns[1:])
    fig = px.bar(df, x=prob.columns[0], y="value",
                 color=prob.columns.name, barmode='group',
                 height=400)
    fig.show()

Road Class

In [14]:
acc['1st_Road_Class'].value_counts()
Out[14]:
A               100283
Unclassified     79837
B                27024
C                12699
Motorway          8098
Name: 1st_Road_Class, dtype: int64
In [15]:
road = P(acc, 'Accident_Severity', '1st_Road_Class')
road
Out[15]:
Accident_Severity 1st_Road_Class Fatal Serious Slight
0 A 0.016473 0.189484 0.794043
1 B 0.014543 0.209702 0.775755
2 C 0.010395 0.177416 0.812190
3 Motorway 0.021363 0.153495 0.825142
4 Unclassified 0.008367 0.191803 0.799830
In [16]:
chart_it(road)
In [17]:
road = P(acc, '1st_Road_Class', 'Accident_Severity')
road
Out[17]:
1st_Road_Class Accident_Severity A B C Motorway Unclassified
0 Fatal 0.547382 0.130219 0.043738 0.057323 0.221339
1 Serious 0.437049 0.130342 0.051819 0.028589 0.352201
2 Slight 0.438860 0.115539 0.056844 0.036827 0.351930
In [18]:
chart_it(road)

In order to comment on the risk of traveling on a particular road, consider the P(Accident_Severity/1st_Road_Class) - Probability of Accident Severity given a Road Class, which highlights the investigative nature of the study by pointing towards the probability of the effect, given the cause. Thus, Motorways are the most prone to fatalities (2.1%) as compared to its counterparts.
Fatal accidents occur in greater frequency on A roads.

On the other hand, after a Bayesian treatment of the value counts of the same random variables, it is interesting to notice that the probabilities of P(1st_Road_Class/Accident_Severity) indicating probability of cause given effect turn out to be in the same proportion. This self-balancing is due to the extreme imbalance in the value counts of the Accident_Severity random variable. Even after random sampling to get equal number of Road class values, the extreme imbalance in Fatal, Severe and Slight variables causes the probabilities to skew in the direction of Slight accidents, irrespective of the feature variable. This must be handled at the time of model training.

In [19]:
l = []; equi = pd.DataFrame()
for val in (acc['1st_Road_Class'].unique()):
    a = acc[acc['1st_Road_Class'] == val]
    a = a.sample(n=1000)
    l.append(a)
equi = l[0]
for df in l[1:]:
    equi = pd.concat([equi, df])
In [20]:
equi['1st_Road_Class'].value_counts()
Out[20]:
A               1000
B               1000
Unclassified    1000
C               1000
Motorway        1000
Name: 1st_Road_Class, dtype: int64
In [21]:
road = P(equi, 'Accident_Severity', '1st_Road_Class')
road
Out[21]:
Accident_Severity 1st_Road_Class Fatal Serious Slight
0 A 0.008 0.190 0.802
1 B 0.016 0.216 0.768
2 C 0.013 0.177 0.810
3 Motorway 0.021 0.148 0.831
4 Unclassified 0.009 0.185 0.806
In [22]:
road = P(equi, '1st_Road_Class', 'Accident_Severity')
road
Out[22]:
1st_Road_Class Accident_Severity A B C Motorway Unclassified
0 Fatal 0.119403 0.238806 0.194030 0.313433 0.134328
1 Serious 0.207424 0.235808 0.193231 0.161572 0.201965
2 Slight 0.199651 0.191187 0.201643 0.206871 0.200647

Road Type

In [23]:
acc['Road_Type'].value_counts()
Out[23]:
Single carriageway    168859
Dual carriageway       36118
Roundabout             13811
One way street          5844
Slip road               3309
Name: Road_Type, dtype: int64
In [24]:
rtype = P(acc, 'Accident_Severity', 'Road_Type')
rtype
Out[24]:
Accident_Severity Road_Type Fatal Serious Slight
0 Dual carriageway 0.017360 0.173653 0.808987
1 One way street 0.006160 0.156742 0.837098
2 Roundabout 0.003403 0.134748 0.861849
3 Single carriageway 0.013455 0.201156 0.785389
4 Slip road 0.010879 0.139619 0.849501
In [25]:
rtype = P(acc, 'Road_Type', 'Accident_Severity')
rtype
Out[25]:
Road_Type Accident_Severity Dual carriageway One way street Roundabout Single carriageway Slip road
0 Fatal 0.207753 0.011928 0.015573 0.752816 0.011928
1 Serious 0.144257 0.021068 0.042803 0.781246 0.010626
2 Slight 0.161035 0.026961 0.065601 0.730910 0.015492

Dual carriageways are more prone to fatalities than its counterparts (17%).

Speed Limit

In [26]:
speed = P(acc, 'Accident_Severity', 'Speed_limit')
speed
Out[26]:
Accident_Severity Speed_limit Fatal Serious Slight
0 20 MPH 0.004374 0.157080 0.838546
1 30 MPH 0.007643 0.180092 0.812265
2 40 MPH 0.017042 0.207523 0.775435
3 50 MPH 0.026220 0.205459 0.768322
4 60 MPH 0.034511 0.261401 0.704088
5 70 MPH 0.026848 0.178324 0.794828
In [27]:
speed_hist = pd.DataFrame(acc['Speed_limit'].value_counts()).reset_index()
speed_hist.sort_values(by=['index'], inplace=True)
fig = px.histogram(speed_hist, x='index', y='Speed_limit')
fig.show()

Notice that 60MPH speed limit roads have higher probability of fatal accidents, even though 30MPH roads have the highest frequency of accidents. This can be explained by the safe assumption that the average vehicle speeds have a direct positive correlation with the speed limit of the road. But 70MPH roads have lesser probability of fatal accidents and a significant jump in probability of slight accidents, maybe due to the fact that 70MPH roads are particularly built and engineered in a way that makes driving at high speed a more comfortable and safer experience.

Junction Details

In [28]:
junc = P(acc, 'Accident_Severity', 'Junction_Detail')
junc
Out[28]:
Accident_Severity Junction_Detail Fatal Serious Slight
0 Crossroads 0.008271 0.173312 0.818417
1 Mini-roundabout 0.002834 0.143577 0.853589
2 More than 4 arms (not roundabout) 0.005810 0.184211 0.809979
3 Not at junction or within 20 metres 0.019452 0.205194 0.775354
4 Other junction 0.010348 0.196822 0.792830
5 Private drive or entrance 0.008896 0.191936 0.799167
6 Roundabout 0.004974 0.138883 0.856143
7 Slip road 0.014883 0.151045 0.834072
8 T or staggered junction 0.009561 0.192997 0.797443
In [29]:
junc = P(acc, 'Junction_Detail', 'Accident_Severity')
display(junc)
chart_it(junc)
Junction_Detail Accident_Severity Crossroads Mini-roundabout More than 4 arms (not roundabout) Not at junction or within 20 metres Other junction Private drive or entrance Roundabout Slip road T or staggered junction
0 Fatal 0.059311 0.002982 0.005633 0.626905 0.032803 0.015573 0.030152 0.015573 0.211067
1 Serious 0.086274 0.010488 0.012397 0.459037 0.043309 0.023322 0.058443 0.010971 0.295759
2 Slight 0.097622 0.014941 0.013062 0.415630 0.041803 0.023269 0.086329 0.014517 0.292827

Clearly, roads having no junction within 20 meters have the most number of accidents and are the riskiest too, with respect to the probability of having a fatality. The probability of a slight accident on these kind of roads is the least when compared to its counterparts too.

Climate and Weather

In [30]:
light = P(acc, 'Accident_Severity', 'Light_Conditions')
light
Out[30]:
Accident_Severity Light_Conditions Fatal Serious Slight
0 Darkness - lighting unknown 0.010945 0.140100 0.848955
1 Darkness - lights lit 0.014041 0.202953 0.783006
2 Darkness - lights unlit 0.024639 0.213942 0.761418
3 Darkness - no lighting 0.046851 0.266144 0.687005
4 Daylight 0.010647 0.183345 0.806008
In [31]:
weather = P(acc, 'Accident_Severity', 'Weather_Conditions')
weather
Out[31]:
Accident_Severity Weather_Conditions Fatal Serious Slight
0 Fine + high winds 0.023788 0.209058 0.767155
1 Fine no high winds 0.013259 0.192777 0.793964
2 Fog or mist 0.049242 0.202020 0.748737
3 Other 0.007552 0.147909 0.844539
4 Raining + high winds 0.023741 0.212034 0.764224
5 Raining no high winds 0.011447 0.183806 0.804746
6 Snowing + high winds 0.005038 0.148615 0.846348
7 Snowing no high winds 0.013666 0.147106 0.839228

For obvious reasons, conditions with No lighting and climatic conditions of high winds and rains have the highest probability of fatalities and the lowest probabilities of slight accidents

Time Series Analysis

In [32]:
time = acc[['Date', 'Accident_Severity']]
time['Date'] = time['Date'].apply(lambda x: datetime.strptime(x, '%d/%m/%Y'))
In [33]:
time = pd.DataFrame(time.groupby('Date')['Accident_Severity'].value_counts()).unstack().unstack()
time = pd.DataFrame(time['Accident_Severity']).reset_index()
time.replace(np.nan, 0, inplace=True)
time
Out[33]:
Accident_Severity Date 0
0 Fatal 2018-01-01 4.0
1 Fatal 2018-01-02 3.0
2 Fatal 2018-01-03 3.0
3 Fatal 2018-01-04 6.0
4 Fatal 2018-01-05 4.0
5 Fatal 2018-01-06 1.0
6 Fatal 2018-01-07 2.0
7 Fatal 2018-01-08 0.0
8 Fatal 2018-01-09 2.0
9 Fatal 2018-01-10 5.0
10 Fatal 2018-01-11 7.0
11 Fatal 2018-01-12 3.0
12 Fatal 2018-01-13 6.0
13 Fatal 2018-01-14 4.0
14 Fatal 2018-01-15 2.0
15 Fatal 2018-01-16 2.0
16 Fatal 2018-01-17 5.0
17 Fatal 2018-01-18 2.0
18 Fatal 2018-01-19 4.0
19 Fatal 2018-01-20 8.0
20 Fatal 2018-01-21 5.0
21 Fatal 2018-01-22 5.0
22 Fatal 2018-01-23 3.0
23 Fatal 2018-01-24 1.0
24 Fatal 2018-01-25 7.0
25 Fatal 2018-01-26 5.0
26 Fatal 2018-01-27 3.0
27 Fatal 2018-01-28 5.0
28 Fatal 2018-01-29 5.0
29 Fatal 2018-01-30 1.0
30 Fatal 2018-01-31 1.0
31 Fatal 2018-02-01 5.0
32 Fatal 2018-02-02 6.0
33 Fatal 2018-02-03 5.0
34 Fatal 2018-02-04 2.0
35 Fatal 2018-02-05 2.0
36 Fatal 2018-02-06 6.0
37 Fatal 2018-02-07 3.0
38 Fatal 2018-02-08 0.0
39 Fatal 2018-02-09 3.0
40 Fatal 2018-02-10 1.0
41 Fatal 2018-02-11 4.0
42 Fatal 2018-02-12 7.0
43 Fatal 2018-02-13 4.0
44 Fatal 2018-02-14 2.0
45 Fatal 2018-02-15 5.0
46 Fatal 2018-02-16 2.0
47 Fatal 2018-02-17 6.0
48 Fatal 2018-02-18 2.0
49 Fatal 2018-02-19 6.0
50 Fatal 2018-02-20 5.0
51 Fatal 2018-02-21 2.0
52 Fatal 2018-02-22 1.0
53 Fatal 2018-02-23 3.0
54 Fatal 2018-02-24 8.0
55 Fatal 2018-02-25 3.0
56 Fatal 2018-02-26 5.0
57 Fatal 2018-02-27 7.0
58 Fatal 2018-02-28 3.0
59 Fatal 2018-03-01 4.0
60 Fatal 2018-03-02 1.0
61 Fatal 2018-03-03 1.0
62 Fatal 2018-03-04 2.0
63 Fatal 2018-03-05 4.0
64 Fatal 2018-03-06 5.0
65 Fatal 2018-03-07 5.0
66 Fatal 2018-03-08 3.0
67 Fatal 2018-03-09 1.0
68 Fatal 2018-03-10 3.0
69 Fatal 2018-03-11 6.0
70 Fatal 2018-03-12 3.0
71 Fatal 2018-03-13 6.0
72 Fatal 2018-03-14 3.0
73 Fatal 2018-03-15 1.0
74 Fatal 2018-03-16 6.0
75 Fatal 2018-03-17 5.0
76 Fatal 2018-03-18 2.0
77 Fatal 2018-03-19 3.0
78 Fatal 2018-03-20 2.0
79 Fatal 2018-03-21 2.0
80 Fatal 2018-03-22 4.0
81 Fatal 2018-03-23 5.0
82 Fatal 2018-03-24 2.0
83 Fatal 2018-03-25 5.0
84 Fatal 2018-03-26 4.0
85 Fatal 2018-03-27 3.0
86 Fatal 2018-03-28 5.0
87 Fatal 2018-03-29 2.0
88 Fatal 2018-03-30 4.0
89 Fatal 2018-03-31 0.0
90 Fatal 2018-04-01 6.0
91 Fatal 2018-04-02 6.0
92 Fatal 2018-04-03 6.0
93 Fatal 2018-04-04 0.0
94 Fatal 2018-04-05 5.0
95 Fatal 2018-04-06 3.0
96 Fatal 2018-04-07 4.0
97 Fatal 2018-04-08 5.0
98 Fatal 2018-04-09 6.0
99 Fatal 2018-04-10 1.0
100 Fatal 2018-04-11 2.0
101 Fatal 2018-04-12 1.0
102 Fatal 2018-04-13 3.0
103 Fatal 2018-04-14 3.0
104 Fatal 2018-04-15 6.0
105 Fatal 2018-04-16 3.0
106 Fatal 2018-04-17 2.0
107 Fatal 2018-04-18 6.0
108 Fatal 2018-04-19 4.0
109 Fatal 2018-04-20 3.0
110 Fatal 2018-04-21 4.0
111 Fatal 2018-04-22 3.0
112 Fatal 2018-04-23 4.0
113 Fatal 2018-04-24 2.0
114 Fatal 2018-04-25 3.0
115 Fatal 2018-04-26 5.0
116 Fatal 2018-04-27 2.0
117 Fatal 2018-04-28 4.0
118 Fatal 2018-04-29 7.0
119 Fatal 2018-04-30 4.0
120 Fatal 2018-05-01 4.0
121 Fatal 2018-05-02 5.0
122 Fatal 2018-05-03 4.0
123 Fatal 2018-05-04 7.0
124 Fatal 2018-05-05 5.0
125 Fatal 2018-05-06 6.0
126 Fatal 2018-05-07 6.0
127 Fatal 2018-05-08 0.0
128 Fatal 2018-05-09 3.0
129 Fatal 2018-05-10 3.0
130 Fatal 2018-05-11 2.0
131 Fatal 2018-05-12 8.0
132 Fatal 2018-05-13 4.0
133 Fatal 2018-05-14 4.0
134 Fatal 2018-05-15 6.0
135 Fatal 2018-05-16 3.0
136 Fatal 2018-05-17 4.0
137 Fatal 2018-05-18 9.0
138 Fatal 2018-05-19 5.0
139 Fatal 2018-05-20 3.0
140 Fatal 2018-05-21 9.0
141 Fatal 2018-05-22 4.0
142 Fatal 2018-05-23 2.0
143 Fatal 2018-05-24 3.0
144 Fatal 2018-05-25 2.0
145 Fatal 2018-05-26 4.0
146 Fatal 2018-05-27 2.0
147 Fatal 2018-05-28 6.0
148 Fatal 2018-05-29 6.0
149 Fatal 2018-05-30 5.0
150 Fatal 2018-05-31 3.0
151 Fatal 2018-06-01 1.0
152 Fatal 2018-06-02 2.0
153 Fatal 2018-06-03 6.0
154 Fatal 2018-06-04 6.0
155 Fatal 2018-06-05 5.0
156 Fatal 2018-06-06 4.0
157 Fatal 2018-06-07 9.0
158 Fatal 2018-06-08 1.0
159 Fatal 2018-06-09 2.0
160 Fatal 2018-06-10 1.0
161 Fatal 2018-06-11 3.0
162 Fatal 2018-06-12 4.0
163 Fatal 2018-06-13 3.0
164 Fatal 2018-06-14 0.0
165 Fatal 2018-06-15 2.0
166 Fatal 2018-06-16 4.0
167 Fatal 2018-06-17 2.0
168 Fatal 2018-06-18 7.0
169 Fatal 2018-06-19 3.0
170 Fatal 2018-06-20 5.0
171 Fatal 2018-06-21 4.0
172 Fatal 2018-06-22 7.0
173 Fatal 2018-06-23 6.0
174 Fatal 2018-06-24 3.0
175 Fatal 2018-06-25 5.0
176 Fatal 2018-06-26 2.0
177 Fatal 2018-06-27 2.0
178 Fatal 2018-06-28 4.0
179 Fatal 2018-06-29 5.0
180 Fatal 2018-06-30 5.0
181 Fatal 2018-07-01 6.0
182 Fatal 2018-07-02 4.0
183 Fatal 2018-07-03 7.0
184 Fatal 2018-07-04 5.0
185 Fatal 2018-07-05 6.0
186 Fatal 2018-07-06 3.0
187 Fatal 2018-07-07 7.0
188 Fatal 2018-07-08 3.0
189 Fatal 2018-07-09 5.0
190 Fatal 2018-07-10 1.0
191 Fatal 2018-07-11 4.0
192 Fatal 2018-07-12 2.0
193 Fatal 2018-07-13 4.0
194 Fatal 2018-07-14 3.0
195 Fatal 2018-07-15 2.0
196 Fatal 2018-07-16 3.0
197 Fatal 2018-07-17 5.0
198 Fatal 2018-07-18 1.0
199 Fatal 2018-07-19 1.0
200 Fatal 2018-07-20 2.0
201 Fatal 2018-07-21 4.0
202 Fatal 2018-07-22 4.0
203 Fatal 2018-07-23 5.0
204 Fatal 2018-07-24 3.0
205 Fatal 2018-07-25 3.0
206 Fatal 2018-07-26 2.0
207 Fatal 2018-07-27 5.0
208 Fatal 2018-07-28 4.0
209 Fatal 2018-07-29 5.0
210 Fatal 2018-07-30 6.0
211 Fatal 2018-07-31 5.0
212 Fatal 2018-08-01 3.0
213 Fatal 2018-08-02 6.0
214 Fatal 2018-08-03 5.0
215 Fatal 2018-08-04 4.0
216 Fatal 2018-08-05 7.0
217 Fatal 2018-08-06 4.0
218 Fatal 2018-08-07 2.0
219 Fatal 2018-08-08 6.0
220 Fatal 2018-08-09 3.0
221 Fatal 2018-08-10 2.0
222 Fatal 2018-08-11 5.0
223 Fatal 2018-08-12 3.0
224 Fatal 2018-08-13 4.0
225 Fatal 2018-08-14 3.0
226 Fatal 2018-08-15 3.0
227 Fatal 2018-08-16 10.0
228 Fatal 2018-08-17 3.0
229 Fatal 2018-08-18 8.0
230 Fatal 2018-08-19 6.0
231 Fatal 2018-08-20 4.0
232 Fatal 2018-08-21 2.0
233 Fatal 2018-08-22 7.0
234 Fatal 2018-08-23 2.0
235 Fatal 2018-08-24 4.0
236 Fatal 2018-08-25 5.0
237 Fatal 2018-08-26 3.0
238 Fatal 2018-08-27 4.0
239 Fatal 2018-08-28 2.0
240 Fatal 2018-08-29 3.0
241 Fatal 2018-08-30 2.0
242 Fatal 2018-08-31 5.0
243 Fatal 2018-09-01 5.0
244 Fatal 2018-09-02 5.0
245 Fatal 2018-09-03 2.0
246 Fatal 2018-09-04 1.0
247 Fatal 2018-09-05 1.0
248 Fatal 2018-09-06 4.0
249 Fatal 2018-09-07 2.0
250 Fatal 2018-09-08 4.0
251 Fatal 2018-09-09 10.0
252 Fatal 2018-09-10 6.0
253 Fatal 2018-09-11 3.0
254 Fatal 2018-09-12 1.0
255 Fatal 2018-09-13 5.0
256 Fatal 2018-09-14 7.0
257 Fatal 2018-09-15 6.0
258 Fatal 2018-09-16 4.0
259 Fatal 2018-09-17 2.0
260 Fatal 2018-09-18 4.0
261 Fatal 2018-09-19 3.0
262 Fatal 2018-09-20 2.0
263 Fatal 2018-09-21 3.0
264 Fatal 2018-09-22 7.0
265 Fatal 2018-09-23 3.0
266 Fatal 2018-09-24 7.0
267 Fatal 2018-09-25 2.0
268 Fatal 2018-09-26 1.0
269 Fatal 2018-09-27 9.0
270 Fatal 2018-09-28 10.0
271 Fatal 2018-09-29 8.0
272 Fatal 2018-09-30 5.0
273 Fatal 2018-10-01 5.0
274 Fatal 2018-10-02 4.0
275 Fatal 2018-10-03 8.0
276 Fatal 2018-10-04 5.0
277 Fatal 2018-10-05 2.0
278 Fatal 2018-10-06 6.0
279 Fatal 2018-10-07 7.0
280 Fatal 2018-10-08 4.0
281 Fatal 2018-10-09 10.0
282 Fatal 2018-10-10 6.0
283 Fatal 2018-10-11 5.0
284 Fatal 2018-10-12 7.0
285 Fatal 2018-10-13 5.0
286 Fatal 2018-10-14 8.0
287 Fatal 2018-10-15 5.0
288 Fatal 2018-10-16 2.0
289 Fatal 2018-10-17 3.0
290 Fatal 2018-10-18 5.0
291 Fatal 2018-10-19 6.0
292 Fatal 2018-10-20 6.0
293 Fatal 2018-10-21 7.0
294 Fatal 2018-10-22 4.0
295 Fatal 2018-10-23 3.0
296 Fatal 2018-10-24 7.0
297 Fatal 2018-10-25 5.0
298 Fatal 2018-10-26 8.0
299 Fatal 2018-10-27 2.0
300 Fatal 2018-10-28 8.0
301 Fatal 2018-10-29 3.0
302 Fatal 2018-10-30 1.0
303 Fatal 2018-10-31 4.0
304 Fatal 2018-11-01 6.0
305 Fatal 2018-11-02 4.0
306 Fatal 2018-11-03 5.0
307 Fatal 2018-11-04 3.0
308 Fatal 2018-11-05 7.0
309 Fatal 2018-11-06 7.0
310 Fatal 2018-11-07 6.0
311 Fatal 2018-11-08 1.0
312 Fatal 2018-11-09 3.0
313 Fatal 2018-11-10 7.0
314 Fatal 2018-11-11 8.0
315 Fatal 2018-11-12 4.0
316 Fatal 2018-11-13 4.0
317 Fatal 2018-11-14 1.0
318 Fatal 2018-11-15 3.0
319 Fatal 2018-11-16 7.0
320 Fatal 2018-11-17 6.0
321 Fatal 2018-11-18 8.0
322 Fatal 2018-11-19 1.0
323 Fatal 2018-11-20 5.0
324 Fatal 2018-11-21 5.0
325 Fatal 2018-11-22 2.0
326 Fatal 2018-11-23 3.0
327 Fatal 2018-11-24 11.0
328 Fatal 2018-11-25 1.0
329 Fatal 2018-11-26 3.0
330 Fatal 2018-11-27 3.0
331 Fatal 2018-11-28 5.0
332 Fatal 2018-11-29 3.0
333 Fatal 2018-11-30 9.0
334 Fatal 2018-12-01 5.0
335 Fatal 2018-12-02 2.0
336 Fatal 2018-12-03 4.0
337 Fatal 2018-12-04 9.0
338 Fatal 2018-12-05 3.0
339 Fatal 2018-12-06 4.0
340 Fatal 2018-12-07 6.0
341 Fatal 2018-12-08 10.0
342 Fatal 2018-12-09 8.0
343 Fatal 2018-12-10 2.0
344 Fatal 2018-12-11 6.0
345 Fatal 2018-12-12 2.0
346 Fatal 2018-12-13 4.0
347 Fatal 2018-12-14 8.0
348 Fatal 2018-12-15 3.0
349 Fatal 2018-12-16 4.0
350 Fatal 2018-12-17 4.0
351 Fatal 2018-12-18 4.0
352 Fatal 2018-12-19 3.0
353 Fatal 2018-12-20 4.0
354 Fatal 2018-12-21 8.0
355 Fatal 2018-12-22 10.0
356 Fatal 2018-12-23 7.0
357 Fatal 2018-12-24 2.0
358 Fatal 2018-12-25 4.0
359 Fatal 2018-12-26 3.0
360 Fatal 2018-12-27 3.0
361 Fatal 2018-12-28 6.0
362 Fatal 2018-12-29 5.0
363 Fatal 2018-12-30 2.0
364 Fatal 2018-12-31 3.0
365 Fatal 2019-01-01 7.0
366 Fatal 2019-01-02 3.0
367 Fatal 2019-01-03 8.0
368 Fatal 2019-01-04 1.0
369 Fatal 2019-01-05 6.0
370 Fatal 2019-01-06 4.0
371 Fatal 2019-01-07 13.0
372 Fatal 2019-01-08 8.0
373 Fatal 2019-01-09 4.0
374 Fatal 2019-01-10 2.0
375 Fatal 2019-01-11 9.0
376 Fatal 2019-01-12 4.0
377 Fatal 2019-01-13 3.0
378 Fatal 2019-01-14 5.0
379 Fatal 2019-01-15 4.0
380 Fatal 2019-01-16 4.0
381 Fatal 2019-01-17 5.0
382 Fatal 2019-01-18 3.0
383 Fatal 2019-01-19 2.0
384 Fatal 2019-01-20 1.0
385 Fatal 2019-01-21 2.0
386 Fatal 2019-01-22 7.0
387 Fatal 2019-01-23 9.0
388 Fatal 2019-01-24 2.0
389 Fatal 2019-01-25 5.0
390 Fatal 2019-01-26 6.0
391 Fatal 2019-01-27 4.0
392 Fatal 2019-01-28 6.0
393 Fatal 2019-01-29 3.0
394 Fatal 2019-01-30 6.0
395 Fatal 2019-01-31 4.0
396 Fatal 2019-02-01 2.0
397 Fatal 2019-02-02 6.0
398 Fatal 2019-02-03 2.0
399 Fatal 2019-02-04 3.0
400 Fatal 2019-02-05 5.0
401 Fatal 2019-02-06 2.0
402 Fatal 2019-02-07 4.0
403 Fatal 2019-02-08 6.0
404 Fatal 2019-02-09 8.0
405 Fatal 2019-02-10 2.0
406 Fatal 2019-02-11 2.0
407 Fatal 2019-02-12 3.0
408 Fatal 2019-02-13 5.0
409 Fatal 2019-02-14 3.0
410 Fatal 2019-02-15 6.0
411 Fatal 2019-02-16 4.0
412 Fatal 2019-02-17 6.0
413 Fatal 2019-02-18 5.0
414 Fatal 2019-02-19 3.0
415 Fatal 2019-02-20 5.0
416 Fatal 2019-02-21 4.0
417 Fatal 2019-02-22 5.0
418 Fatal 2019-02-23 10.0
419 Fatal 2019-02-24 6.0
420 Fatal 2019-02-25 5.0
421 Fatal 2019-02-26 4.0
422 Fatal 2019-02-27 2.0
423 Fatal 2019-02-28 3.0
424 Fatal 2019-03-01 4.0
425 Fatal 2019-03-02 3.0
426 Fatal 2019-03-03 2.0
427 Fatal 2019-03-04 2.0
428 Fatal 2019-03-05 3.0
429 Fatal 2019-03-06 6.0
430 Fatal 2019-03-07 2.0
431 Fatal 2019-03-08 3.0
432 Fatal 2019-03-09 1.0
433 Fatal 2019-03-10 4.0
434 Fatal 2019-03-11 3.0
435 Fatal 2019-03-12 2.0
436 Fatal 2019-03-13 1.0
437 Fatal 2019-03-14 5.0
438 Fatal 2019-03-15 2.0
439 Fatal 2019-03-16 4.0
440 Fatal 2019-03-17 2.0
441 Fatal 2019-03-18 2.0
442 Fatal 2019-03-19 2.0
443 Fatal 2019-03-20 6.0
444 Fatal 2019-03-21 6.0
445 Fatal 2019-03-22 4.0
446 Fatal 2019-03-23 6.0
447 Fatal 2019-03-24 3.0
448 Fatal 2019-03-25 4.0
449 Fatal 2019-03-26 5.0
450 Fatal 2019-03-27 4.0
451 Fatal 2019-03-28 2.0
452 Fatal 2019-03-29 5.0
453 Fatal 2019-03-30 6.0
454 Fatal 2019-03-31 5.0
455 Fatal 2019-04-01 4.0
456 Fatal 2019-04-02 4.0
457 Fatal 2019-04-03 7.0
458 Fatal 2019-04-04 3.0
459 Fatal 2019-04-05 1.0
460 Fatal 2019-04-06 4.0
461 Fatal 2019-04-07 5.0
462 Fatal 2019-04-08 3.0
463 Fatal 2019-04-09 1.0
464 Fatal 2019-04-10 7.0
465 Fatal 2019-04-11 6.0
466 Fatal 2019-04-12 3.0
467 Fatal 2019-04-13 4.0
468 Fatal 2019-04-14 7.0
469 Fatal 2019-04-15 3.0
470 Fatal 2019-04-16 8.0
471 Fatal 2019-04-17 5.0
472 Fatal 2019-04-18 3.0
473 Fatal 2019-04-19 6.0
474 Fatal 2019-04-20 9.0
475 Fatal 2019-04-21 8.0
476 Fatal 2019-04-22 4.0
477 Fatal 2019-04-23 5.0
478 Fatal 2019-04-24 3.0
479 Fatal 2019-04-25 2.0
480 Fatal 2019-04-26 3.0
481 Fatal 2019-04-27 1.0
482 Fatal 2019-04-28 2.0
483 Fatal 2019-04-29 3.0
484 Fatal 2019-04-30 3.0
485 Fatal 2019-05-01 2.0
486 Fatal 2019-05-02 3.0
487 Fatal 2019-05-03 4.0
488 Fatal 2019-05-04 2.0
489 Fatal 2019-05-05 4.0
490 Fatal 2019-05-06 4.0
491 Fatal 2019-05-07 2.0
492 Fatal 2019-05-08 4.0
493 Fatal 2019-05-09 3.0
494 Fatal 2019-05-10 4.0
495 Fatal 2019-05-11 4.0
496 Fatal 2019-05-12 5.0
497 Fatal 2019-05-13 3.0
498 Fatal 2019-05-14 3.0
499 Fatal 2019-05-15 5.0
500 Fatal 2019-05-16 4.0
501 Fatal 2019-05-17 2.0
502 Fatal 2019-05-18 1.0
503 Fatal 2019-05-19 5.0
504 Fatal 2019-05-20 5.0
505 Fatal 2019-05-21 0.0
506 Fatal 2019-05-22 3.0
507 Fatal 2019-05-23 4.0
508 Fatal 2019-05-24 5.0
509 Fatal 2019-05-25 2.0
510 Fatal 2019-05-26 2.0
511 Fatal 2019-05-27 1.0
512 Fatal 2019-05-28 4.0
513 Fatal 2019-05-29 1.0
514 Fatal 2019-05-30 7.0
515 Fatal 2019-05-31 5.0
516 Fatal 2019-06-01 1.0
517 Fatal 2019-06-02 4.0
518 Fatal 2019-06-03 4.0
519 Fatal 2019-06-04 5.0
520 Fatal 2019-06-05 4.0
521 Fatal 2019-06-06 2.0
522 Fatal 2019-06-07 7.0
523 Fatal 2019-06-08 1.0
524 Fatal 2019-06-09 3.0
525 Fatal 2019-06-10 1.0
526 Fatal 2019-06-11 1.0
527 Fatal 2019-06-12 4.0
528 Fatal 2019-06-13 2.0
529 Fatal 2019-06-14 1.0
530 Fatal 2019-06-15 2.0
531 Fatal 2019-06-16 2.0
532 Fatal 2019-06-17 6.0
533 Fatal 2019-06-18 0.0
534 Fatal 2019-06-19 2.0
535 Fatal 2019-06-20 4.0
536 Fatal 2019-06-21 4.0
537 Fatal 2019-06-22 3.0
538 Fatal 2019-06-23 1.0
539 Fatal 2019-06-24 5.0
540 Fatal 2019-06-25 3.0
541 Fatal 2019-06-26 8.0
542 Fatal 2019-06-27 4.0
543 Fatal 2019-06-28 6.0
544 Fatal 2019-06-29 9.0
545 Fatal 2019-06-30 7.0
546 Fatal 2019-07-01 4.0
547 Fatal 2019-07-02 2.0
548 Fatal 2019-07-03 9.0
549 Fatal 2019-07-04 7.0
550 Fatal 2019-07-05 3.0
551 Fatal 2019-07-06 8.0
552 Fatal 2019-07-07 5.0
553 Fatal 2019-07-08 2.0
554 Fatal 2019-07-09 5.0
555 Fatal 2019-07-10 2.0
556 Fatal 2019-07-11 3.0
557 Fatal 2019-07-12 4.0
558 Fatal 2019-07-13 5.0
559 Fatal 2019-07-14 7.0
560 Fatal 2019-07-15 4.0
561 Fatal 2019-07-16 3.0
562 Fatal 2019-07-17 3.0
563 Fatal 2019-07-18 3.0
564 Fatal 2019-07-19 3.0
565 Fatal 2019-07-20 0.0
566 Fatal 2019-07-21 2.0
567 Fatal 2019-07-22 7.0
568 Fatal 2019-07-23 6.0
569 Fatal 2019-07-24 5.0
570 Fatal 2019-07-25 6.0
571 Fatal 2019-07-26 2.0
572 Fatal 2019-07-27 6.0
573 Fatal 2019-07-28 8.0
574 Fatal 2019-07-29 8.0
575 Fatal 2019-07-30 2.0
576 Fatal 2019-07-31 7.0
577 Fatal 2019-08-01 2.0
578 Fatal 2019-08-02 9.0
579 Fatal 2019-08-03 5.0
580 Fatal 2019-08-04 4.0
581 Fatal 2019-08-05 1.0
582 Fatal 2019-08-06 5.0
583 Fatal 2019-08-07 6.0
584 Fatal 2019-08-08 3.0
585 Fatal 2019-08-09 4.0
586 Fatal 2019-08-10 4.0
587 Fatal 2019-08-11 2.0
588 Fatal 2019-08-12 5.0
589 Fatal 2019-08-13 3.0
590 Fatal 2019-08-14 2.0
591 Fatal 2019-08-15 7.0
592 Fatal 2019-08-16 8.0
593 Fatal 2019-08-17 8.0
594 Fatal 2019-08-18 2.0
595 Fatal 2019-08-19 3.0
596 Fatal 2019-08-20 2.0
597 Fatal 2019-08-21 2.0
598 Fatal 2019-08-22 4.0
599 Fatal 2019-08-23 4.0
600 Fatal 2019-08-24 7.0
601 Fatal 2019-08-25 4.0
602 Fatal 2019-08-26 2.0
603 Fatal 2019-08-27 7.0
604 Fatal 2019-08-28 3.0
605 Fatal 2019-08-29 2.0
606 Fatal 2019-08-30 4.0
607 Fatal 2019-08-31 4.0
608 Fatal 2019-09-01 5.0
609 Fatal 2019-09-02 3.0
610 Fatal 2019-09-03 3.0
611 Fatal 2019-09-04 5.0
612 Fatal 2019-09-05 4.0
613 Fatal 2019-09-06 1.0
614 Fatal 2019-09-07 7.0
615 Fatal 2019-09-08 8.0
616 Fatal 2019-09-09 4.0
617 Fatal 2019-09-10 9.0
618 Fatal 2019-09-11 4.0
619 Fatal 2019-09-12 5.0
620 Fatal 2019-09-13 4.0
621 Fatal 2019-09-14 3.0
622 Fatal 2019-09-15 3.0
623 Fatal 2019-09-16 5.0
624 Fatal 2019-09-17 3.0
625 Fatal 2019-09-18 5.0
626 Fatal 2019-09-19 5.0
627 Fatal 2019-09-20 5.0
628 Fatal 2019-09-21 5.0
629 Fatal 2019-09-22 4.0
630 Fatal 2019-09-23 4.0
631 Fatal 2019-09-24 6.0
632 Fatal 2019-09-25 4.0
633 Fatal 2019-09-26 2.0
634 Fatal 2019-09-27 1.0
635 Fatal 2019-09-28 3.0
636 Fatal 2019-09-29 5.0
637 Fatal 2019-09-30 4.0
638 Fatal 2019-10-01 8.0
639 Fatal 2019-10-02 2.0
640 Fatal 2019-10-03 3.0
641 Fatal 2019-10-04 5.0
642 Fatal 2019-10-05 5.0
643 Fatal 2019-10-06 3.0
644 Fatal 2019-10-07 5.0
645 Fatal 2019-10-08 8.0
646 Fatal 2019-10-09 4.0
647 Fatal 2019-10-10 6.0
648 Fatal 2019-10-11 6.0
649 Fatal 2019-10-12 5.0
650 Fatal 2019-10-13 4.0
651 Fatal 2019-10-14 5.0
652 Fatal 2019-10-15 3.0
653 Fatal 2019-10-16 3.0
654 Fatal 2019-10-17 3.0
655 Fatal 2019-10-18 3.0
656 Fatal 2019-10-19 4.0
657 Fatal 2019-10-20 3.0
658 Fatal 2019-10-21 2.0
659 Fatal 2019-10-22 2.0
660 Fatal 2019-10-23 4.0
661 Fatal 2019-10-24 3.0
662 Fatal 2019-10-25 2.0
663 Fatal 2019-10-26 3.0
664 Fatal 2019-10-27 3.0
665 Fatal 2019-10-28 6.0
666 Fatal 2019-10-29 3.0
667 Fatal 2019-10-30 2.0
668 Fatal 2019-10-31 4.0
669 Fatal 2019-11-01 9.0
670 Fatal 2019-11-02 7.0
671 Fatal 2019-11-03 9.0
672 Fatal 2019-11-04 4.0
673 Fatal 2019-11-05 3.0
674 Fatal 2019-11-06 0.0
675 Fatal 2019-11-07 3.0
676 Fatal 2019-11-08 2.0
677 Fatal 2019-11-09 5.0
678 Fatal 2019-11-10 4.0
679 Fatal 2019-11-11 4.0
680 Fatal 2019-11-12 4.0
681 Fatal 2019-11-13 0.0
682 Fatal 2019-11-14 4.0
683 Fatal 2019-11-15 2.0
684 Fatal 2019-11-16 6.0
685 Fatal 2019-11-17 3.0
686 Fatal 2019-11-18 2.0
687 Fatal 2019-11-19 4.0
688 Fatal 2019-11-20 6.0
689 Fatal 2019-11-21 5.0
690 Fatal 2019-11-22 2.0
691 Fatal 2019-11-23 4.0
692 Fatal 2019-11-24 3.0
693 Fatal 2019-11-25 2.0
694 Fatal 2019-11-26 6.0
695 Fatal 2019-11-27 3.0
696 Fatal 2019-11-28 3.0
697 Fatal 2019-11-29 8.0
698 Fatal 2019-11-30 7.0
699 Fatal 2019-12-01 6.0
700 Fatal 2019-12-02 7.0
701 Fatal 2019-12-03 3.0
702 Fatal 2019-12-04 2.0
703 Fatal 2019-12-05 5.0
704 Fatal 2019-12-06 5.0
705 Fatal 2019-12-07 3.0
706 Fatal 2019-12-08 3.0
707 Fatal 2019-12-09 4.0
708 Fatal 2019-12-10 6.0
709 Fatal 2019-12-11 10.0
710 Fatal 2019-12-12 6.0
711 Fatal 2019-12-13 4.0
712 Fatal 2019-12-14 1.0
713 Fatal 2019-12-15 7.0
714 Fatal 2019-12-16 8.0
715 Fatal 2019-12-17 3.0
716 Fatal 2019-12-18 3.0
717 Fatal 2019-12-19 3.0
718 Fatal 2019-12-20 6.0
719 Fatal 2019-12-21 8.0
720 Fatal 2019-12-22 4.0
721 Fatal 2019-12-23 4.0
722 Fatal 2019-12-24 3.0
723 Fatal 2019-12-25 6.0
724 Fatal 2019-12-26 3.0
725 Fatal 2019-12-27 1.0
726 Fatal 2019-12-28 2.0
727 Fatal 2019-12-29 2.0
728 Fatal 2019-12-30 2.0
729 Fatal 2019-12-31 9.0
730 Serious 2018-01-01 59.0
731 Serious 2018-01-02 35.0
732 Serious 2018-01-03 41.0
733 Serious 2018-01-04 48.0
734 Serious 2018-01-05 44.0
735 Serious 2018-01-06 34.0
736 Serious 2018-01-07 37.0
737 Serious 2018-01-08 56.0
738 Serious 2018-01-09 44.0
739 Serious 2018-01-10 74.0
740 Serious 2018-01-11 60.0
741 Serious 2018-01-12 68.0
742 Serious 2018-01-13 47.0
743 Serious 2018-01-14 41.0
744 Serious 2018-01-15 55.0
745 Serious 2018-01-16 77.0
746 Serious 2018-01-17 47.0
747 Serious 2018-01-18 66.0
748 Serious 2018-01-19 78.0
749 Serious 2018-01-20 37.0
750 Serious 2018-01-21 32.0
751 Serious 2018-01-22 46.0
752 Serious 2018-01-23 52.0
753 Serious 2018-01-24 61.0
754 Serious 2018-01-25 68.0
755 Serious 2018-01-26 76.0
756 Serious 2018-01-27 50.0
757 Serious 2018-01-28 40.0
758 Serious 2018-01-29 59.0
759 Serious 2018-01-30 67.0
760 Serious 2018-01-31 42.0
761 Serious 2018-02-01 72.0
762 Serious 2018-02-02 65.0
763 Serious 2018-02-03 59.0
764 Serious 2018-02-04 40.0
765 Serious 2018-02-05 49.0
766 Serious 2018-02-06 41.0
767 Serious 2018-02-07 63.0
768 Serious 2018-02-08 45.0
769 Serious 2018-02-09 69.0
770 Serious 2018-02-10 39.0
771 Serious 2018-02-11 42.0
772 Serious 2018-02-12 76.0
773 Serious 2018-02-13 70.0
774 Serious 2018-02-14 64.0
775 Serious 2018-02-15 53.0
776 Serious 2018-02-16 67.0
777 Serious 2018-02-17 56.0
778 Serious 2018-02-18 38.0
779 Serious 2018-02-19 51.0
780 Serious 2018-02-20 51.0
781 Serious 2018-02-21 60.0
782 Serious 2018-02-22 50.0
783 Serious 2018-02-23 71.0
784 Serious 2018-02-24 58.0
785 Serious 2018-02-25 45.0
786 Serious 2018-02-26 46.0
787 Serious 2018-02-27 69.0
788 Serious 2018-02-28 35.0
789 Serious 2018-03-01 31.0
790 Serious 2018-03-02 23.0
791 Serious 2018-03-03 26.0
792 Serious 2018-03-04 39.0
793 Serious 2018-03-05 55.0
794 Serious 2018-03-06 35.0
795 Serious 2018-03-07 36.0
796 Serious 2018-03-08 60.0
797 Serious 2018-03-09 68.0
798 Serious 2018-03-10 56.0
799 Serious 2018-03-11 44.0
800 Serious 2018-03-12 45.0
801 Serious 2018-03-13 53.0
802 Serious 2018-03-14 42.0
803 Serious 2018-03-15 58.0
804 Serious 2018-03-16 56.0
805 Serious 2018-03-17 49.0
806 Serious 2018-03-18 25.0
807 Serious 2018-03-19 37.0
808 Serious 2018-03-20 58.0
809 Serious 2018-03-21 64.0
810 Serious 2018-03-22 46.0
811 Serious 2018-03-23 55.0
812 Serious 2018-03-24 48.0
813 Serious 2018-03-25 52.0
814 Serious 2018-03-26 57.0
815 Serious 2018-03-27 49.0
816 Serious 2018-03-28 48.0
817 Serious 2018-03-29 57.0
818 Serious 2018-03-30 45.0
819 Serious 2018-03-31 49.0
820 Serious 2018-04-01 46.0
821 Serious 2018-04-02 33.0
822 Serious 2018-04-03 40.0
823 Serious 2018-04-04 37.0
824 Serious 2018-04-05 67.0
825 Serious 2018-04-06 40.0
826 Serious 2018-04-07 41.0
827 Serious 2018-04-08 40.0
828 Serious 2018-04-09 43.0
829 Serious 2018-04-10 38.0
830 Serious 2018-04-11 50.0
831 Serious 2018-04-12 39.0
832 Serious 2018-04-13 61.0
833 Serious 2018-04-14 68.0
834 Serious 2018-04-15 56.0
835 Serious 2018-04-16 49.0
836 Serious 2018-04-17 50.0
837 Serious 2018-04-18 96.0
838 Serious 2018-04-19 83.0
839 Serious 2018-04-20 95.0
840 Serious 2018-04-21 82.0
841 Serious 2018-04-22 57.0
842 Serious 2018-04-23 50.0
843 Serious 2018-04-24 63.0
844 Serious 2018-04-25 60.0
845 Serious 2018-04-26 68.0
846 Serious 2018-04-27 62.0
847 Serious 2018-04-28 59.0
848 Serious 2018-04-29 37.0
849 Serious 2018-04-30 51.0
850 Serious 2018-05-01 52.0
851 Serious 2018-05-02 56.0
852 Serious 2018-05-03 62.0
853 Serious 2018-05-04 83.0
854 Serious 2018-05-05 72.0
855 Serious 2018-05-06 88.0
856 Serious 2018-05-07 84.0
857 Serious 2018-05-08 78.0
858 Serious 2018-05-09 77.0
859 Serious 2018-05-10 67.0
860 Serious 2018-05-11 53.0
861 Serious 2018-05-12 60.0
862 Serious 2018-05-13 47.0
863 Serious 2018-05-14 60.0
864 Serious 2018-05-15 81.0
865 Serious 2018-05-16 60.0
866 Serious 2018-05-17 73.0
867 Serious 2018-05-18 62.0
868 Serious 2018-05-19 65.0
869 Serious 2018-05-20 64.0
870 Serious 2018-05-21 60.0
871 Serious 2018-05-22 72.0
872 Serious 2018-05-23 80.0
873 Serious 2018-05-24 64.0
874 Serious 2018-05-25 73.0
875 Serious 2018-05-26 57.0
876 Serious 2018-05-27 58.0
877 Serious 2018-05-28 60.0
878 Serious 2018-05-29 49.0
879 Serious 2018-05-30 50.0
880 Serious 2018-05-31 43.0
881 Serious 2018-06-01 58.0
882 Serious 2018-06-02 56.0
883 Serious 2018-06-03 68.0
884 Serious 2018-06-04 52.0
885 Serious 2018-06-05 58.0
886 Serious 2018-06-06 63.0
887 Serious 2018-06-07 62.0
888 Serious 2018-06-08 63.0
889 Serious 2018-06-09 63.0
890 Serious 2018-06-10 63.0
891 Serious 2018-06-11 77.0
892 Serious 2018-06-12 62.0
893 Serious 2018-06-13 61.0
894 Serious 2018-06-14 69.0
895 Serious 2018-06-15 73.0
896 Serious 2018-06-16 67.0
897 Serious 2018-06-17 54.0
898 Serious 2018-06-18 63.0
899 Serious 2018-06-19 70.0
900 Serious 2018-06-20 56.0
901 Serious 2018-06-21 67.0
902 Serious 2018-06-22 86.0
903 Serious 2018-06-23 77.0
904 Serious 2018-06-24 82.0
905 Serious 2018-06-25 69.0
906 Serious 2018-06-26 87.0
907 Serious 2018-06-27 92.0
908 Serious 2018-06-28 80.0
909 Serious 2018-06-29 75.0
910 Serious 2018-06-30 78.0
911 Serious 2018-07-01 79.0
912 Serious 2018-07-02 67.0
913 Serious 2018-07-03 59.0
914 Serious 2018-07-04 63.0
915 Serious 2018-07-05 82.0
916 Serious 2018-07-06 74.0
917 Serious 2018-07-07 83.0
918 Serious 2018-07-08 70.0
919 Serious 2018-07-09 56.0
920 Serious 2018-07-10 72.0
921 Serious 2018-07-11 63.0
922 Serious 2018-07-12 64.0
923 Serious 2018-07-13 80.0
924 Serious 2018-07-14 56.0
925 Serious 2018-07-15 67.0
926 Serious 2018-07-16 77.0
927 Serious 2018-07-17 67.0
928 Serious 2018-07-18 59.0
929 Serious 2018-07-19 62.0
930 Serious 2018-07-20 54.0
931 Serious 2018-07-21 58.0
932 Serious 2018-07-22 52.0
933 Serious 2018-07-23 68.0
934 Serious 2018-07-24 70.0
935 Serious 2018-07-25 77.0
936 Serious 2018-07-26 62.0
937 Serious 2018-07-27 58.0
938 Serious 2018-07-28 58.0
939 Serious 2018-07-29 60.0
940 Serious 2018-07-30 66.0
941 Serious 2018-07-31 66.0
942 Serious 2018-08-01 52.0
943 Serious 2018-08-02 55.0
944 Serious 2018-08-03 80.0
945 Serious 2018-08-04 69.0
946 Serious 2018-08-05 75.0
947 Serious 2018-08-06 64.0
948 Serious 2018-08-07 66.0
949 Serious 2018-08-08 55.0
950 Serious 2018-08-09 66.0
951 Serious 2018-08-10 58.0
952 Serious 2018-08-11 64.0
953 Serious 2018-08-12 47.0
954 Serious 2018-08-13 46.0
955 Serious 2018-08-14 48.0
956 Serious 2018-08-15 58.0
957 Serious 2018-08-16 53.0
958 Serious 2018-08-17 67.0
959 Serious 2018-08-18 49.0
960 Serious 2018-08-19 45.0
961 Serious 2018-08-20 57.0
962 Serious 2018-08-21 53.0
963 Serious 2018-08-22 58.0
964 Serious 2018-08-23 61.0
965 Serious 2018-08-24 71.0
966 Serious 2018-08-25 58.0
967 Serious 2018-08-26 54.0
968 Serious 2018-08-27 42.0
969 Serious 2018-08-28 48.0
970 Serious 2018-08-29 55.0
971 Serious 2018-08-30 44.0
972 Serious 2018-08-31 77.0
973 Serious 2018-09-01 64.0
974 Serious 2018-09-02 66.0
975 Serious 2018-09-03 66.0
976 Serious 2018-09-04 55.0
977 Serious 2018-09-05 73.0
978 Serious 2018-09-06 76.0
979 Serious 2018-09-07 54.0
980 Serious 2018-09-08 52.0
981 Serious 2018-09-09 57.0
982 Serious 2018-09-10 48.0
983 Serious 2018-09-11 65.0
984 Serious 2018-09-12 62.0
985 Serious 2018-09-13 67.0
986 Serious 2018-09-14 60.0
987 Serious 2018-09-15 54.0
988 Serious 2018-09-16 64.0
989 Serious 2018-09-17 63.0
990 Serious 2018-09-18 72.0
991 Serious 2018-09-19 65.0
992 Serious 2018-09-20 58.0
993 Serious 2018-09-21 64.0
994 Serious 2018-09-22 64.0
995 Serious 2018-09-23 43.0
996 Serious 2018-09-24 77.0
997 Serious 2018-09-25 67.0
998 Serious 2018-09-26 77.0
999 Serious 2018-09-27 75.0
1000 Serious 2018-09-28 83.0
1001 Serious 2018-09-29 68.0
1002 Serious 2018-09-30 54.0
1003 Serious 2018-10-01 64.0
1004 Serious 2018-10-02 53.0
1005 Serious 2018-10-03 62.0
1006 Serious 2018-10-04 60.0
1007 Serious 2018-10-05 70.0
1008 Serious 2018-10-06 75.0
1009 Serious 2018-10-07 48.0
1010 Serious 2018-10-08 54.0
1011 Serious 2018-10-09 74.0
1012 Serious 2018-10-10 97.0
1013 Serious 2018-10-11 67.0
1014 Serious 2018-10-12 76.0
1015 Serious 2018-10-13 59.0
1016 Serious 2018-10-14 54.0
1017 Serious 2018-10-15 61.0
1018 Serious 2018-10-16 60.0
1019 Serious 2018-10-17 56.0
1020 Serious 2018-10-18 66.0
1021 Serious 2018-10-19 75.0
1022 Serious 2018-10-20 80.0
1023 Serious 2018-10-21 60.0
1024 Serious 2018-10-22 56.0
1025 Serious 2018-10-23 49.0
1026 Serious 2018-10-24 71.0
1027 Serious 2018-10-25 57.0
1028 Serious 2018-10-26 72.0
1029 Serious 2018-10-27 56.0
1030 Serious 2018-10-28 57.0
1031 Serious 2018-10-29 61.0
1032 Serious 2018-10-30 50.0
1033 Serious 2018-10-31 80.0
1034 Serious 2018-11-01 66.0
1035 Serious 2018-11-02 75.0
1036 Serious 2018-11-03 63.0
1037 Serious 2018-11-04 33.0
1038 Serious 2018-11-05 64.0
1039 Serious 2018-11-06 59.0
1040 Serious 2018-11-07 62.0
1041 Serious 2018-11-08 74.0
1042 Serious 2018-11-09 66.0
1043 Serious 2018-11-10 56.0
1044 Serious 2018-11-11 54.0
1045 Serious 2018-11-12 61.0
1046 Serious 2018-11-13 72.0
1047 Serious 2018-11-14 60.0
1048 Serious 2018-11-15 71.0
1049 Serious 2018-11-16 61.0
1050 Serious 2018-11-17 66.0
1051 Serious 2018-11-18 61.0
1052 Serious 2018-11-19 54.0
1053 Serious 2018-11-20 58.0
1054 Serious 2018-11-21 78.0
1055 Serious 2018-11-22 68.0
1056 Serious 2018-11-23 69.0
1057 Serious 2018-11-24 50.0
1058 Serious 2018-11-25 50.0
1059 Serious 2018-11-26 66.0
1060 Serious 2018-11-27 77.0
1061 Serious 2018-11-28 62.0
1062 Serious 2018-11-29 76.0
1063 Serious 2018-11-30 79.0
1064 Serious 2018-12-01 49.0
1065 Serious 2018-12-02 47.0
1066 Serious 2018-12-03 53.0
1067 Serious 2018-12-04 77.0
1068 Serious 2018-12-05 84.0
1069 Serious 2018-12-06 76.0
1070 Serious 2018-12-07 79.0
1071 Serious 2018-12-08 43.0
1072 Serious 2018-12-09 57.0
1073 Serious 2018-12-10 56.0
1074 Serious 2018-12-11 81.0
1075 Serious 2018-12-12 68.0
1076 Serious 2018-12-13 77.0
1077 Serious 2018-12-14 77.0
1078 Serious 2018-12-15 53.0
1079 Serious 2018-12-16 49.0
1080 Serious 2018-12-17 56.0
1081 Serious 2018-12-18 81.0
1082 Serious 2018-12-19 52.0
1083 Serious 2018-12-20 56.0
1084 Serious 2018-12-21 56.0
1085 Serious 2018-12-22 63.0
1086 Serious 2018-12-23 52.0
1087 Serious 2018-12-24 55.0
1088 Serious 2018-12-25 31.0
1089 Serious 2018-12-26 35.0
1090 Serious 2018-12-27 41.0
1091 Serious 2018-12-28 51.0
1092 Serious 2018-12-29 37.0
1093 Serious 2018-12-30 24.0
1094 Serious 2018-12-31 47.0
1095 Serious 2019-01-01 54.0
1096 Serious 2019-01-02 27.0
1097 Serious 2019-01-03 46.0
1098 Serious 2019-01-04 40.0
1099 Serious 2019-01-05 37.0
1100 Serious 2019-01-06 37.0
1101 Serious 2019-01-07 47.0
1102 Serious 2019-01-08 63.0
1103 Serious 2019-01-09 59.0
1104 Serious 2019-01-10 70.0
1105 Serious 2019-01-11 62.0
1106 Serious 2019-01-12 49.0
1107 Serious 2019-01-13 35.0
1108 Serious 2019-01-14 52.0
1109 Serious 2019-01-15 50.0
1110 Serious 2019-01-16 57.0
1111 Serious 2019-01-17 66.0
1112 Serious 2019-01-18 65.0
1113 Serious 2019-01-19 40.0
1114 Serious 2019-01-20 42.0
1115 Serious 2019-01-21 54.0
1116 Serious 2019-01-22 66.0
1117 Serious 2019-01-23 58.0
1118 Serious 2019-01-24 45.0
1119 Serious 2019-01-25 61.0
1120 Serious 2019-01-26 51.0
1121 Serious 2019-01-27 36.0
1122 Serious 2019-01-28 71.0
1123 Serious 2019-01-29 56.0
1124 Serious 2019-01-30 67.0
1125 Serious 2019-01-31 38.0
1126 Serious 2019-02-01 41.0
1127 Serious 2019-02-02 50.0
1128 Serious 2019-02-03 51.0
1129 Serious 2019-02-04 41.0
1130 Serious 2019-02-05 50.0
1131 Serious 2019-02-06 60.0
1132 Serious 2019-02-07 68.0
1133 Serious 2019-02-08 58.0
1134 Serious 2019-02-09 46.0
1135 Serious 2019-02-10 38.0
1136 Serious 2019-02-11 57.0
1137 Serious 2019-02-12 60.0
1138 Serious 2019-02-13 63.0
1139 Serious 2019-02-14 64.0
1140 Serious 2019-02-15 69.0
1141 Serious 2019-02-16 46.0
1142 Serious 2019-02-17 49.0
1143 Serious 2019-02-18 47.0
1144 Serious 2019-02-19 52.0
1145 Serious 2019-02-20 49.0
1146 Serious 2019-02-21 67.0
1147 Serious 2019-02-22 59.0
1148 Serious 2019-02-23 68.0
1149 Serious 2019-02-24 61.0
1150 Serious 2019-02-25 50.0
1151 Serious 2019-02-26 69.0
1152 Serious 2019-02-27 77.0
1153 Serious 2019-02-28 51.0
1154 Serious 2019-03-01 53.0
1155 Serious 2019-03-02 52.0
1156 Serious 2019-03-03 37.0
1157 Serious 2019-03-04 58.0
1158 Serious 2019-03-05 61.0
1159 Serious 2019-03-06 67.0
1160 Serious 2019-03-07 66.0
1161 Serious 2019-03-08 54.0
1162 Serious 2019-03-09 59.0
1163 Serious 2019-03-10 33.0
1164 Serious 2019-03-11 39.0
1165 Serious 2019-03-12 51.0
1166 Serious 2019-03-13 46.0
1167 Serious 2019-03-14 54.0
1168 Serious 2019-03-15 59.0
1169 Serious 2019-03-16 37.0
1170 Serious 2019-03-17 54.0
1171 Serious 2019-03-18 52.0
1172 Serious 2019-03-19 53.0
1173 Serious 2019-03-20 69.0
1174 Serious 2019-03-21 63.0
1175 Serious 2019-03-22 51.0
1176 Serious 2019-03-23 54.0
1177 Serious 2019-03-24 64.0
1178 Serious 2019-03-25 49.0
1179 Serious 2019-03-26 57.0
1180 Serious 2019-03-27 56.0
1181 Serious 2019-03-28 61.0
1182 Serious 2019-03-29 87.0
1183 Serious 2019-03-30 76.0
1184 Serious 2019-03-31 48.0
1185 Serious 2019-04-01 57.0
1186 Serious 2019-04-02 49.0
1187 Serious 2019-04-03 69.0
1188 Serious 2019-04-04 50.0
1189 Serious 2019-04-05 62.0
1190 Serious 2019-04-06 50.0
1191 Serious 2019-04-07 55.0
1192 Serious 2019-04-08 44.0
1193 Serious 2019-04-09 52.0
1194 Serious 2019-04-10 60.0
1195 Serious 2019-04-11 61.0
1196 Serious 2019-04-12 52.0
1197 Serious 2019-04-13 69.0
1198 Serious 2019-04-14 36.0
1199 Serious 2019-04-15 40.0
1200 Serious 2019-04-16 46.0
1201 Serious 2019-04-17 50.0
1202 Serious 2019-04-18 71.0
1203 Serious 2019-04-19 74.0
1204 Serious 2019-04-20 87.0
1205 Serious 2019-04-21 75.0
1206 Serious 2019-04-22 49.0
1207 Serious 2019-04-23 53.0
1208 Serious 2019-04-24 63.0
1209 Serious 2019-04-25 52.0
1210 Serious 2019-04-26 66.0
1211 Serious 2019-04-27 54.0
1212 Serious 2019-04-28 41.0
1213 Serious 2019-04-29 57.0
1214 Serious 2019-04-30 63.0
1215 Serious 2019-05-01 48.0
1216 Serious 2019-05-02 72.0
1217 Serious 2019-05-03 73.0
1218 Serious 2019-05-04 58.0
1219 Serious 2019-05-05 57.0
1220 Serious 2019-05-06 46.0
1221 Serious 2019-05-07 53.0
1222 Serious 2019-05-08 62.0
1223 Serious 2019-05-09 38.0
1224 Serious 2019-05-10 57.0
1225 Serious 2019-05-11 55.0
1226 Serious 2019-05-12 71.0
1227 Serious 2019-05-13 60.0
1228 Serious 2019-05-14 70.0
1229 Serious 2019-05-15 73.0
1230 Serious 2019-05-16 72.0
1231 Serious 2019-05-17 46.0
1232 Serious 2019-05-18 61.0
1233 Serious 2019-05-19 51.0
1234 Serious 2019-05-20 59.0
1235 Serious 2019-05-21 67.0
1236 Serious 2019-05-22 75.0
1237 Serious 2019-05-23 68.0
1238 Serious 2019-05-24 80.0
1239 Serious 2019-05-25 71.0
1240 Serious 2019-05-26 41.0
1241 Serious 2019-05-27 56.0
1242 Serious 2019-05-28 43.0
1243 Serious 2019-05-29 56.0
1244 Serious 2019-05-30 62.0
1245 Serious 2019-05-31 64.0
1246 Serious 2019-06-01 76.0
1247 Serious 2019-06-02 50.0
1248 Serious 2019-06-03 49.0
1249 Serious 2019-06-04 48.0
1250 Serious 2019-06-05 63.0
1251 Serious 2019-06-06 69.0
1252 Serious 2019-06-07 69.0
1253 Serious 2019-06-08 67.0
1254 Serious 2019-06-09 65.0
1255 Serious 2019-06-10 77.0
1256 Serious 2019-06-11 59.0
1257 Serious 2019-06-12 54.0
1258 Serious 2019-06-13 51.0
1259 Serious 2019-06-14 55.0
1260 Serious 2019-06-15 60.0
1261 Serious 2019-06-16 58.0
1262 Serious 2019-06-17 61.0
1263 Serious 2019-06-18 51.0
1264 Serious 2019-06-19 55.0
1265 Serious 2019-06-20 84.0
1266 Serious 2019-06-21 79.0
1267 Serious 2019-06-22 85.0
1268 Serious 2019-06-23 64.0
1269 Serious 2019-06-24 63.0
1270 Serious 2019-06-25 53.0
1271 Serious 2019-06-26 48.0
1272 Serious 2019-06-27 75.0
1273 Serious 2019-06-28 89.0
1274 Serious 2019-06-29 67.0
1275 Serious 2019-06-30 58.0
1276 Serious 2019-07-01 65.0
1277 Serious 2019-07-02 66.0
1278 Serious 2019-07-03 63.0
1279 Serious 2019-07-04 72.0
1280 Serious 2019-07-05 66.0
1281 Serious 2019-07-06 63.0
1282 Serious 2019-07-07 69.0
1283 Serious 2019-07-08 56.0
1284 Serious 2019-07-09 44.0
1285 Serious 2019-07-10 67.0
1286 Serious 2019-07-11 71.0
1287 Serious 2019-07-12 65.0
1288 Serious 2019-07-13 60.0
1289 Serious 2019-07-14 56.0
1290 Serious 2019-07-15 54.0
1291 Serious 2019-07-16 60.0
1292 Serious 2019-07-17 77.0
1293 Serious 2019-07-18 69.0
1294 Serious 2019-07-19 68.0
1295 Serious 2019-07-20 54.0
1296 Serious 2019-07-21 54.0
1297 Serious 2019-07-22 58.0
1298 Serious 2019-07-23 70.0
1299 Serious 2019-07-24 80.0
1300 Serious 2019-07-25 75.0
1301 Serious 2019-07-26 76.0
1302 Serious 2019-07-27 60.0
1303 Serious 2019-07-28 46.0
1304 Serious 2019-07-29 75.0
1305 Serious 2019-07-30 45.0
1306 Serious 2019-07-31 47.0
1307 Serious 2019-08-01 69.0
1308 Serious 2019-08-02 67.0
1309 Serious 2019-08-03 73.0
1310 Serious 2019-08-04 72.0
1311 Serious 2019-08-05 63.0
1312 Serious 2019-08-06 66.0
1313 Serious 2019-08-07 52.0
1314 Serious 2019-08-08 55.0
1315 Serious 2019-08-09 60.0
1316 Serious 2019-08-10 55.0
1317 Serious 2019-08-11 58.0
1318 Serious 2019-08-12 45.0
1319 Serious 2019-08-13 59.0
1320 Serious 2019-08-14 51.0
1321 Serious 2019-08-15 62.0
1322 Serious 2019-08-16 52.0
1323 Serious 2019-08-17 57.0
1324 Serious 2019-08-18 53.0
1325 Serious 2019-08-19 68.0
1326 Serious 2019-08-20 53.0
1327 Serious 2019-08-21 59.0
1328 Serious 2019-08-22 60.0
1329 Serious 2019-08-23 75.0
1330 Serious 2019-08-24 73.0
1331 Serious 2019-08-25 89.0
1332 Serious 2019-08-26 48.0
1333 Serious 2019-08-27 65.0
1334 Serious 2019-08-28 54.0
1335 Serious 2019-08-29 64.0
1336 Serious 2019-08-30 52.0
1337 Serious 2019-08-31 50.0
1338 Serious 2019-09-01 56.0
1339 Serious 2019-09-02 58.0
1340 Serious 2019-09-03 53.0
1341 Serious 2019-09-04 56.0
1342 Serious 2019-09-05 72.0
1343 Serious 2019-09-06 70.0
1344 Serious 2019-09-07 65.0
1345 Serious 2019-09-08 67.0
1346 Serious 2019-09-09 47.0
1347 Serious 2019-09-10 67.0
1348 Serious 2019-09-11 53.0
1349 Serious 2019-09-12 68.0
1350 Serious 2019-09-13 82.0
1351 Serious 2019-09-14 65.0
1352 Serious 2019-09-15 88.0
1353 Serious 2019-09-16 58.0
1354 Serious 2019-09-17 79.0
1355 Serious 2019-09-18 69.0
1356 Serious 2019-09-19 77.0
1357 Serious 2019-09-20 100.0
1358 Serious 2019-09-21 90.0
1359 Serious 2019-09-22 54.0
1360 Serious 2019-09-23 68.0
1361 Serious 2019-09-24 68.0
1362 Serious 2019-09-25 66.0
1363 Serious 2019-09-26 65.0
1364 Serious 2019-09-27 80.0
1365 Serious 2019-09-28 53.0
1366 Serious 2019-09-29 47.0
1367 Serious 2019-09-30 64.0
1368 Serious 2019-10-01 61.0
1369 Serious 2019-10-02 87.0
1370 Serious 2019-10-03 69.0
1371 Serious 2019-10-04 63.0
1372 Serious 2019-10-05 54.0
1373 Serious 2019-10-06 42.0
1374 Serious 2019-10-07 59.0
1375 Serious 2019-10-08 52.0
1376 Serious 2019-10-09 50.0
1377 Serious 2019-10-10 70.0
1378 Serious 2019-10-11 61.0
1379 Serious 2019-10-12 64.0
1380 Serious 2019-10-13 47.0
1381 Serious 2019-10-14 54.0
1382 Serious 2019-10-15 72.0
1383 Serious 2019-10-16 84.0
1384 Serious 2019-10-17 75.0
1385 Serious 2019-10-18 76.0
1386 Serious 2019-10-19 56.0
1387 Serious 2019-10-20 40.0
1388 Serious 2019-10-21 54.0
1389 Serious 2019-10-22 51.0
1390 Serious 2019-10-23 55.0
1391 Serious 2019-10-24 59.0
1392 Serious 2019-10-25 72.0
1393 Serious 2019-10-26 60.0
1394 Serious 2019-10-27 60.0
1395 Serious 2019-10-28 49.0
1396 Serious 2019-10-29 48.0
1397 Serious 2019-10-30 74.0
1398 Serious 2019-10-31 53.0
1399 Serious 2019-11-01 67.0
1400 Serious 2019-11-02 51.0
1401 Serious 2019-11-03 38.0
1402 Serious 2019-11-04 55.0
1403 Serious 2019-11-05 65.0
1404 Serious 2019-11-06 59.0
1405 Serious 2019-11-07 56.0
1406 Serious 2019-11-08 70.0
1407 Serious 2019-11-09 58.0
1408 Serious 2019-11-10 56.0
1409 Serious 2019-11-11 64.0
1410 Serious 2019-11-12 63.0
1411 Serious 2019-11-13 64.0
1412 Serious 2019-11-14 64.0
1413 Serious 2019-11-15 84.0
1414 Serious 2019-11-16 60.0
1415 Serious 2019-11-17 46.0
1416 Serious 2019-11-18 67.0
1417 Serious 2019-11-19 66.0
1418 Serious 2019-11-20 64.0
1419 Serious 2019-11-21 64.0
1420 Serious 2019-11-22 68.0
1421 Serious 2019-11-23 52.0
1422 Serious 2019-11-24 47.0
1423 Serious 2019-11-25 69.0
1424 Serious 2019-11-26 60.0
1425 Serious 2019-11-27 70.0
1426 Serious 2019-11-28 75.0
1427 Serious 2019-11-29 75.0
1428 Serious 2019-11-30 47.0
1429 Serious 2019-12-01 37.0
1430 Serious 2019-12-02 75.0
1431 Serious 2019-12-03 86.0
1432 Serious 2019-12-04 87.0
1433 Serious 2019-12-05 61.0
1434 Serious 2019-12-06 63.0
1435 Serious 2019-12-07 64.0
1436 Serious 2019-12-08 54.0
1437 Serious 2019-12-09 72.0
1438 Serious 2019-12-10 72.0
1439 Serious 2019-12-11 76.0
1440 Serious 2019-12-12 79.0
1441 Serious 2019-12-13 75.0
1442 Serious 2019-12-14 60.0
1443 Serious 2019-12-15 54.0
1444 Serious 2019-12-16 66.0
1445 Serious 2019-12-17 56.0
1446 Serious 2019-12-18 68.0
1447 Serious 2019-12-19 59.0
1448 Serious 2019-12-20 73.0
1449 Serious 2019-12-21 53.0
1450 Serious 2019-12-22 55.0
1451 Serious 2019-12-23 60.0
1452 Serious 2019-12-24 41.0
1453 Serious 2019-12-25 24.0
1454 Serious 2019-12-26 32.0
1455 Serious 2019-12-27 39.0
1456 Serious 2019-12-28 28.0
1457 Serious 2019-12-29 33.0
1458 Serious 2019-12-30 44.0
1459 Serious 2019-12-31 42.0
1460 Slight 2018-01-01 158.0
1461 Slight 2018-01-02 159.0
1462 Slight 2018-01-03 196.0
1463 Slight 2018-01-04 215.0
1464 Slight 2018-01-05 273.0
1465 Slight 2018-01-06 215.0
1466 Slight 2018-01-07 196.0
1467 Slight 2018-01-08 246.0
1468 Slight 2018-01-09 247.0
1469 Slight 2018-01-10 323.0
1470 Slight 2018-01-11 284.0
1471 Slight 2018-01-12 305.0
1472 Slight 2018-01-13 199.0
1473 Slight 2018-01-14 160.0
1474 Slight 2018-01-15 255.0
1475 Slight 2018-01-16 312.0
1476 Slight 2018-01-17 272.0
1477 Slight 2018-01-18 296.0
1478 Slight 2018-01-19 397.0
1479 Slight 2018-01-20 216.0
1480 Slight 2018-01-21 190.0
1481 Slight 2018-01-22 241.0
1482 Slight 2018-01-23 243.0
1483 Slight 2018-01-24 280.0
1484 Slight 2018-01-25 305.0
1485 Slight 2018-01-26 314.0
1486 Slight 2018-01-27 240.0
1487 Slight 2018-01-28 175.0
1488 Slight 2018-01-29 279.0
1489 Slight 2018-01-30 310.0
1490 Slight 2018-01-31 300.0
1491 Slight 2018-02-01 303.0
1492 Slight 2018-02-02 330.0
1493 Slight 2018-02-03 222.0
1494 Slight 2018-02-04 178.0
1495 Slight 2018-02-05 262.0
1496 Slight 2018-02-06 241.0
1497 Slight 2018-02-07 286.0
1498 Slight 2018-02-08 299.0
1499 Slight 2018-02-09 313.0
1500 Slight 2018-02-10 216.0
1501 Slight 2018-02-11 206.0
1502 Slight 2018-02-12 288.0
1503 Slight 2018-02-13 287.0
1504 Slight 2018-02-14 274.0
1505 Slight 2018-02-15 289.0
1506 Slight 2018-02-16 322.0
1507 Slight 2018-02-17 260.0
1508 Slight 2018-02-18 206.0
1509 Slight 2018-02-19 240.0
1510 Slight 2018-02-20 257.0
1511 Slight 2018-02-21 235.0
1512 Slight 2018-02-22 241.0
1513 Slight 2018-02-23 265.0
1514 Slight 2018-02-24 226.0
1515 Slight 2018-02-25 176.0
1516 Slight 2018-02-26 189.0
1517 Slight 2018-02-27 251.0
1518 Slight 2018-02-28 238.0
1519 Slight 2018-03-01 190.0
1520 Slight 2018-03-02 196.0
1521 Slight 2018-03-03 129.0
1522 Slight 2018-03-04 123.0
1523 Slight 2018-03-05 203.0
1524 Slight 2018-03-06 217.0
1525 Slight 2018-03-07 259.0
1526 Slight 2018-03-08 266.0
1527 Slight 2018-03-09 317.0
1528 Slight 2018-03-10 218.0
1529 Slight 2018-03-11 183.0
1530 Slight 2018-03-12 233.0
1531 Slight 2018-03-13 265.0
1532 Slight 2018-03-14 219.0
1533 Slight 2018-03-15 237.0
1534 Slight 2018-03-16 259.0
1535 Slight 2018-03-17 225.0
1536 Slight 2018-03-18 169.0
1537 Slight 2018-03-19 233.0
1538 Slight 2018-03-20 253.0
1539 Slight 2018-03-21 279.0
1540 Slight 2018-03-22 231.0
1541 Slight 2018-03-23 277.0
1542 Slight 2018-03-24 196.0
1543 Slight 2018-03-25 157.0
1544 Slight 2018-03-26 257.0
1545 Slight 2018-03-27 239.0
1546 Slight 2018-03-28 230.0
1547 Slight 2018-03-29 286.0
1548 Slight 2018-03-30 200.0
1549 Slight 2018-03-31 158.0
1550 Slight 2018-04-01 161.0
1551 Slight 2018-04-02 131.0
1552 Slight 2018-04-03 195.0
1553 Slight 2018-04-04 182.0
1554 Slight 2018-04-05 266.0
1555 Slight 2018-04-06 210.0
1556 Slight 2018-04-07 196.0
1557 Slight 2018-04-08 148.0
1558 Slight 2018-04-09 224.0
1559 Slight 2018-04-10 185.0
1560 Slight 2018-04-11 196.0
1561 Slight 2018-04-12 183.0
1562 Slight 2018-04-13 211.0
1563 Slight 2018-04-14 232.0
1564 Slight 2018-04-15 160.0
1565 Slight 2018-04-16 257.0
1566 Slight 2018-04-17 210.0
1567 Slight 2018-04-18 329.0
1568 Slight 2018-04-19 334.0
1569 Slight 2018-04-20 334.0
1570 Slight 2018-04-21 297.0
1571 Slight 2018-04-22 200.0
1572 Slight 2018-04-23 232.0
1573 Slight 2018-04-24 231.0
1574 Slight 2018-04-25 278.0
1575 Slight 2018-04-26 281.0
1576 Slight 2018-04-27 311.0
1577 Slight 2018-04-28 208.0
1578 Slight 2018-04-29 155.0
1579 Slight 2018-04-30 261.0
1580 Slight 2018-05-01 271.0
1581 Slight 2018-05-02 295.0
1582 Slight 2018-05-03 251.0
1583 Slight 2018-05-04 278.0
1584 Slight 2018-05-05 260.0
1585 Slight 2018-05-06 250.0
1586 Slight 2018-05-07 231.0
1587 Slight 2018-05-08 365.0
1588 Slight 2018-05-09 282.0
1589 Slight 2018-05-10 314.0
1590 Slight 2018-05-11 304.0
1591 Slight 2018-05-12 232.0
1592 Slight 2018-05-13 208.0
1593 Slight 2018-05-14 300.0
1594 Slight 2018-05-15 290.0
1595 Slight 2018-05-16 259.0
1596 Slight 2018-05-17 321.0
1597 Slight 2018-05-18 342.0
1598 Slight 2018-05-19 276.0
1599 Slight 2018-05-20 217.0
1600 Slight 2018-05-21 310.0
1601 Slight 2018-05-22 307.0
1602 Slight 2018-05-23 287.0
1603 Slight 2018-05-24 253.0
1604 Slight 2018-05-25 313.0
1605 Slight 2018-05-26 252.0
1606 Slight 2018-05-27 199.0
1607 Slight 2018-05-28 215.0
1608 Slight 2018-05-29 232.0
1609 Slight 2018-05-30 222.0
1610 Slight 2018-05-31 216.0
1611 Slight 2018-06-01 251.0
1612 Slight 2018-06-02 200.0
1613 Slight 2018-06-03 199.0
1614 Slight 2018-06-04 229.0
1615 Slight 2018-06-05 256.0
1616 Slight 2018-06-06 311.0
1617 Slight 2018-06-07 278.0
1618 Slight 2018-06-08 256.0
1619 Slight 2018-06-09 244.0
1620 Slight 2018-06-10 231.0
1621 Slight 2018-06-11 293.0
1622 Slight 2018-06-12 257.0
1623 Slight 2018-06-13 258.0
1624 Slight 2018-06-14 307.0
1625 Slight 2018-06-15 283.0
1626 Slight 2018-06-16 246.0
1627 Slight 2018-06-17 194.0
1628 Slight 2018-06-18 264.0
1629 Slight 2018-06-19 239.0
1630 Slight 2018-06-20 283.0
1631 Slight 2018-06-21 338.0
1632 Slight 2018-06-22 334.0
1633 Slight 2018-06-23 227.0
1634 Slight 2018-06-24 240.0
1635 Slight 2018-06-25 357.0
1636 Slight 2018-06-26 340.0
1637 Slight 2018-06-27 377.0
1638 Slight 2018-06-28 305.0
1639 Slight 2018-06-29 375.0
1640 Slight 2018-06-30 276.0
1641 Slight 2018-07-01 219.0
1642 Slight 2018-07-02 330.0
1643 Slight 2018-07-03 371.0
1644 Slight 2018-07-04 312.0
1645 Slight 2018-07-05 303.0
1646 Slight 2018-07-06 300.0
1647 Slight 2018-07-07 267.0
1648 Slight 2018-07-08 231.0
1649 Slight 2018-07-09 306.0
1650 Slight 2018-07-10 286.0
1651 Slight 2018-07-11 304.0
1652 Slight 2018-07-12 290.0
1653 Slight 2018-07-13 281.0
1654 Slight 2018-07-14 236.0
1655 Slight 2018-07-15 212.0
1656 Slight 2018-07-16 269.0
1657 Slight 2018-07-17 255.0
1658 Slight 2018-07-18 253.0
1659 Slight 2018-07-19 286.0
1660 Slight 2018-07-20 256.0
1661 Slight 2018-07-21 223.0
1662 Slight 2018-07-22 188.0
1663 Slight 2018-07-23 243.0
1664 Slight 2018-07-24 272.0
1665 Slight 2018-07-25 267.0
1666 Slight 2018-07-26 288.0
1667 Slight 2018-07-27 307.0
1668 Slight 2018-07-28 229.0
1669 Slight 2018-07-29 210.0
1670 Slight 2018-07-30 257.0
1671 Slight 2018-07-31 250.0
1672 Slight 2018-08-01 235.0
1673 Slight 2018-08-02 241.0
1674 Slight 2018-08-03 248.0
1675 Slight 2018-08-04 219.0
1676 Slight 2018-08-05 238.0
1677 Slight 2018-08-06 256.0
1678 Slight 2018-08-07 249.0
1679 Slight 2018-08-08 269.0
1680 Slight 2018-08-09 282.0
1681 Slight 2018-08-10 308.0
1682 Slight 2018-08-11 202.0
1683 Slight 2018-08-12 170.0
1684 Slight 2018-08-13 245.0
1685 Slight 2018-08-14 207.0
1686 Slight 2018-08-15 225.0
1687 Slight 2018-08-16 216.0
1688 Slight 2018-08-17 252.0
1689 Slight 2018-08-18 190.0
1690 Slight 2018-08-19 167.0
1691 Slight 2018-08-20 217.0
1692 Slight 2018-08-21 231.0
1693 Slight 2018-08-22 242.0
1694 Slight 2018-08-23 253.0
1695 Slight 2018-08-24 244.0
1696 Slight 2018-08-25 228.0
1697 Slight 2018-08-26 225.0
1698 Slight 2018-08-27 152.0
1699 Slight 2018-08-28 200.0
1700 Slight 2018-08-29 203.0
1701 Slight 2018-08-30 235.0
1702 Slight 2018-08-31 293.0
1703 Slight 2018-09-01 243.0
1704 Slight 2018-09-02 245.0
1705 Slight 2018-09-03 242.0
1706 Slight 2018-09-04 228.0
1707 Slight 2018-09-05 235.0
1708 Slight 2018-09-06 280.0
1709 Slight 2018-09-07 332.0
1710 Slight 2018-09-08 211.0
1711 Slight 2018-09-09 174.0
1712 Slight 2018-09-10 222.0
1713 Slight 2018-09-11 257.0
1714 Slight 2018-09-12 273.0
1715 Slight 2018-09-13 319.0
1716 Slight 2018-09-14 316.0
1717 Slight 2018-09-15 244.0
1718 Slight 2018-09-16 206.0
1719 Slight 2018-09-17 281.0
1720 Slight 2018-09-18 269.0
1721 Slight 2018-09-19 269.0
1722 Slight 2018-09-20 294.0
1723 Slight 2018-09-21 305.0
1724 Slight 2018-09-22 262.0
1725 Slight 2018-09-23 226.0
1726 Slight 2018-09-24 312.0
1727 Slight 2018-09-25 306.0
1728 Slight 2018-09-26 289.0
1729 Slight 2018-09-27 317.0
1730 Slight 2018-09-28 305.0
1731 Slight 2018-09-29 272.0
1732 Slight 2018-09-30 171.0
1733 Slight 2018-10-01 297.0
1734 Slight 2018-10-02 232.0
1735 Slight 2018-10-03 264.0
1736 Slight 2018-10-04 269.0
1737 Slight 2018-10-05 298.0
1738 Slight 2018-10-06 265.0
1739 Slight 2018-10-07 185.0
1740 Slight 2018-10-08 266.0
1741 Slight 2018-10-09 293.0
1742 Slight 2018-10-10 359.0
1743 Slight 2018-10-11 269.0
1744 Slight 2018-10-12 287.0
1745 Slight 2018-10-13 220.0
1746 Slight 2018-10-14 228.0
1747 Slight 2018-10-15 293.0
1748 Slight 2018-10-16 287.0
1749 Slight 2018-10-17 259.0
1750 Slight 2018-10-18 257.0
1751 Slight 2018-10-19 324.0
1752 Slight 2018-10-20 236.0
1753 Slight 2018-10-21 216.0
1754 Slight 2018-10-22 277.0
1755 Slight 2018-10-23 248.0
1756 Slight 2018-10-24 252.0
1757 Slight 2018-10-25 246.0
1758 Slight 2018-10-26 342.0
1759 Slight 2018-10-27 238.0
1760 Slight 2018-10-28 187.0
1761 Slight 2018-10-29 288.0
1762 Slight 2018-10-30 231.0
1763 Slight 2018-10-31 297.0
1764 Slight 2018-11-01 290.0
1765 Slight 2018-11-02 389.0
1766 Slight 2018-11-03 205.0
1767 Slight 2018-11-04 176.0
1768 Slight 2018-11-05 266.0
1769 Slight 2018-11-06 282.0
1770 Slight 2018-11-07 313.0
1771 Slight 2018-11-08 322.0
1772 Slight 2018-11-09 318.0
1773 Slight 2018-11-10 277.0
1774 Slight 2018-11-11 241.0
1775 Slight 2018-11-12 326.0
1776 Slight 2018-11-13 321.0
1777 Slight 2018-11-14 302.0
1778 Slight 2018-11-15 282.0
1779 Slight 2018-11-16 288.0
1780 Slight 2018-11-17 223.0
1781 Slight 2018-11-18 190.0
1782 Slight 2018-11-19 294.0
1783 Slight 2018-11-20 299.0
1784 Slight 2018-11-21 304.0
1785 Slight 2018-11-22 311.0
1786 Slight 2018-11-23 314.0
1787 Slight 2018-11-24 238.0
1788 Slight 2018-11-25 171.0
1789 Slight 2018-11-26 276.0
1790 Slight 2018-11-27 345.0
1791 Slight 2018-11-28 317.0
1792 Slight 2018-11-29 286.0
1793 Slight 2018-11-30 371.0
1794 Slight 2018-12-01 264.0
1795 Slight 2018-12-02 200.0
1796 Slight 2018-12-03 304.0
1797 Slight 2018-12-04 378.0
1798 Slight 2018-12-05 329.0
1799 Slight 2018-12-06 310.0
1800 Slight 2018-12-07 329.0
1801 Slight 2018-12-08 218.0
1802 Slight 2018-12-09 186.0
1803 Slight 2018-12-10 275.0
1804 Slight 2018-12-11 313.0
1805 Slight 2018-12-12 301.0
1806 Slight 2018-12-13 281.0
1807 Slight 2018-12-14 294.0
1808 Slight 2018-12-15 270.0
1809 Slight 2018-12-16 224.0
1810 Slight 2018-12-17 298.0
1811 Slight 2018-12-18 320.0
1812 Slight 2018-12-19 323.0
1813 Slight 2018-12-20 249.0
1814 Slight 2018-12-21 284.0
1815 Slight 2018-12-22 216.0
1816 Slight 2018-12-23 203.0
1817 Slight 2018-12-24 201.0
1818 Slight 2018-12-25 91.0
1819 Slight 2018-12-26 128.0
1820 Slight 2018-12-27 176.0
1821 Slight 2018-12-28 165.0
1822 Slight 2018-12-29 163.0
1823 Slight 2018-12-30 145.0
1824 Slight 2018-12-31 142.0
1825 Slight 2019-01-01 157.0
1826 Slight 2019-01-02 155.0
1827 Slight 2019-01-03 153.0
1828 Slight 2019-01-04 183.0
1829 Slight 2019-01-05 138.0
1830 Slight 2019-01-06 141.0
1831 Slight 2019-01-07 233.0
1832 Slight 2019-01-08 264.0
1833 Slight 2019-01-09 286.0
1834 Slight 2019-01-10 266.0
1835 Slight 2019-01-11 251.0
1836 Slight 2019-01-12 217.0
1837 Slight 2019-01-13 126.0
1838 Slight 2019-01-14 239.0
1839 Slight 2019-01-15 269.0
1840 Slight 2019-01-16 288.0
1841 Slight 2019-01-17 299.0
1842 Slight 2019-01-18 242.0
1843 Slight 2019-01-19 186.0
1844 Slight 2019-01-20 152.0
1845 Slight 2019-01-21 249.0
1846 Slight 2019-01-22 339.0
1847 Slight 2019-01-23 278.0
1848 Slight 2019-01-24 266.0
1849 Slight 2019-01-25 290.0
1850 Slight 2019-01-26 187.0
1851 Slight 2019-01-27 153.0
1852 Slight 2019-01-28 258.0
1853 Slight 2019-01-29 279.0
1854 Slight 2019-01-30 312.0
1855 Slight 2019-01-31 245.0
1856 Slight 2019-02-01 256.0
1857 Slight 2019-02-02 210.0
1858 Slight 2019-02-03 191.0
1859 Slight 2019-02-04 267.0
1860 Slight 2019-02-05 230.0
1861 Slight 2019-02-06 241.0
1862 Slight 2019-02-07 264.0
1863 Slight 2019-02-08 271.0
1864 Slight 2019-02-09 195.0
1865 Slight 2019-02-10 180.0
1866 Slight 2019-02-11 229.0
1867 Slight 2019-02-12 228.0
1868 Slight 2019-02-13 241.0
1869 Slight 2019-02-14 302.0
1870 Slight 2019-02-15 304.0
1871 Slight 2019-02-16 211.0
1872 Slight 2019-02-17 181.0
1873 Slight 2019-02-18 214.0
1874 Slight 2019-02-19 238.0
1875 Slight 2019-02-20 227.0
1876 Slight 2019-02-21 240.0
1877 Slight 2019-02-22 247.0
1878 Slight 2019-02-23 235.0
1879 Slight 2019-02-24 201.0
1880 Slight 2019-02-25 291.0
1881 Slight 2019-02-26 286.0
1882 Slight 2019-02-27 275.0
1883 Slight 2019-02-28 243.0
1884 Slight 2019-03-01 223.0
1885 Slight 2019-03-02 216.0
1886 Slight 2019-03-03 138.0
1887 Slight 2019-03-04 235.0
1888 Slight 2019-03-05 282.0
1889 Slight 2019-03-06 246.0
1890 Slight 2019-03-07 226.0
1891 Slight 2019-03-08 317.0
1892 Slight 2019-03-09 194.0
1893 Slight 2019-03-10 175.0
1894 Slight 2019-03-11 259.0
1895 Slight 2019-03-12 246.0
1896 Slight 2019-03-13 224.0
1897 Slight 2019-03-14 233.0
1898 Slight 2019-03-15 246.0
1899 Slight 2019-03-16 206.0
1900 Slight 2019-03-17 184.0
1901 Slight 2019-03-18 221.0
1902 Slight 2019-03-19 215.0
1903 Slight 2019-03-20 235.0
1904 Slight 2019-03-21 218.0
1905 Slight 2019-03-22 246.0
1906 Slight 2019-03-23 211.0
1907 Slight 2019-03-24 217.0
1908 Slight 2019-03-25 270.0
1909 Slight 2019-03-26 263.0
1910 Slight 2019-03-27 234.0
1911 Slight 2019-03-28 258.0
1912 Slight 2019-03-29 305.0
1913 Slight 2019-03-30 216.0
1914 Slight 2019-03-31 164.0
1915 Slight 2019-04-01 240.0
1916 Slight 2019-04-02 273.0
1917 Slight 2019-04-03 264.0
1918 Slight 2019-04-04 274.0
1919 Slight 2019-04-05 253.0
1920 Slight 2019-04-06 185.0
1921 Slight 2019-04-07 178.0
1922 Slight 2019-04-08 207.0
1923 Slight 2019-04-09 207.0
1924 Slight 2019-04-10 246.0
1925 Slight 2019-04-11 239.0
1926 Slight 2019-04-12 224.0
1927 Slight 2019-04-13 198.0
1928 Slight 2019-04-14 145.0
1929 Slight 2019-04-15 222.0
1930 Slight 2019-04-16 177.0
1931 Slight 2019-04-17 226.0
1932 Slight 2019-04-18 216.0
1933 Slight 2019-04-19 204.0
1934 Slight 2019-04-20 251.0
1935 Slight 2019-04-21 192.0
1936 Slight 2019-04-22 169.0
1937 Slight 2019-04-23 215.0
1938 Slight 2019-04-24 229.0
1939 Slight 2019-04-25 232.0
1940 Slight 2019-04-26 259.0
1941 Slight 2019-04-27 194.0
1942 Slight 2019-04-28 160.0
1943 Slight 2019-04-29 205.0
1944 Slight 2019-04-30 270.0
1945 Slight 2019-05-01 243.0
1946 Slight 2019-05-02 247.0
1947 Slight 2019-05-03 269.0
1948 Slight 2019-05-04 230.0
1949 Slight 2019-05-05 179.0
1950 Slight 2019-05-06 133.0
1951 Slight 2019-05-07 244.0
1952 Slight 2019-05-08 260.0
1953 Slight 2019-05-09 241.0
1954 Slight 2019-05-10 271.0
1955 Slight 2019-05-11 228.0
1956 Slight 2019-05-12 199.0
1957 Slight 2019-05-13 307.0
1958 Slight 2019-05-14 282.0
1959 Slight 2019-05-15 303.0
1960 Slight 2019-05-16 286.0
1961 Slight 2019-05-17 224.0
1962 Slight 2019-05-18 193.0
1963 Slight 2019-05-19 146.0
1964 Slight 2019-05-20 224.0
1965 Slight 2019-05-21 287.0
1966 Slight 2019-05-22 251.0
1967 Slight 2019-05-23 302.0
1968 Slight 2019-05-24 294.0
1969 Slight 2019-05-25 213.0
1970 Slight 2019-05-26 166.0
1971 Slight 2019-05-27 144.0
1972 Slight 2019-05-28 237.0
1973 Slight 2019-05-29 222.0
1974 Slight 2019-05-30 227.0
1975 Slight 2019-05-31 211.0
1976 Slight 2019-06-01 223.0
1977 Slight 2019-06-02 177.0
1978 Slight 2019-06-03 249.0
1979 Slight 2019-06-04 280.0
1980 Slight 2019-06-05 256.0
1981 Slight 2019-06-06 290.0
1982 Slight 2019-06-07 305.0
1983 Slight 2019-06-08 219.0
1984 Slight 2019-06-09 186.0
1985 Slight 2019-06-10 254.0
1986 Slight 2019-06-11 254.0
1987 Slight 2019-06-12 276.0
1988 Slight 2019-06-13 259.0
1989 Slight 2019-06-14 274.0
1990 Slight 2019-06-15 237.0
1991 Slight 2019-06-16 206.0
1992 Slight 2019-06-17 229.0
1993 Slight 2019-06-18 274.0
1994 Slight 2019-06-19 237.0
1995 Slight 2019-06-20 242.0
1996 Slight 2019-06-21 312.0
1997 Slight 2019-06-22 241.0
1998 Slight 2019-06-23 189.0
1999 Slight 2019-06-24 242.0
2000 Slight 2019-06-25 232.0
2001 Slight 2019-06-26 244.0
2002 Slight 2019-06-27 301.0
2003 Slight 2019-06-28 303.0
2004 Slight 2019-06-29 278.0
2005 Slight 2019-06-30 214.0
2006 Slight 2019-07-01 240.0
2007 Slight 2019-07-02 247.0
2008 Slight 2019-07-03 289.0
2009 Slight 2019-07-04 300.0
2010 Slight 2019-07-05 297.0
2011 Slight 2019-07-06 254.0
2012 Slight 2019-07-07 223.0
2013 Slight 2019-07-08 258.0
2014 Slight 2019-07-09 228.0
2015 Slight 2019-07-10 233.0
2016 Slight 2019-07-11 289.0
2017 Slight 2019-07-12 297.0
2018 Slight 2019-07-13 205.0
2019 Slight 2019-07-14 177.0
2020 Slight 2019-07-15 289.0
2021 Slight 2019-07-16 257.0
2022 Slight 2019-07-17 277.0
2023 Slight 2019-07-18 254.0
2024 Slight 2019-07-19 301.0
2025 Slight 2019-07-20 242.0
2026 Slight 2019-07-21 200.0
2027 Slight 2019-07-22 225.0
2028 Slight 2019-07-23 291.0
2029 Slight 2019-07-24 252.0
2030 Slight 2019-07-25 232.0
2031 Slight 2019-07-26 268.0
2032 Slight 2019-07-27 228.0
2033 Slight 2019-07-28 183.0
2034 Slight 2019-07-29 204.0
2035 Slight 2019-07-30 225.0
2036 Slight 2019-07-31 257.0
2037 Slight 2019-08-01 272.0
2038 Slight 2019-08-02 256.0
2039 Slight 2019-08-03 192.0
2040 Slight 2019-08-04 155.0
2041 Slight 2019-08-05 218.0
2042 Slight 2019-08-06 223.0
2043 Slight 2019-08-07 237.0
2044 Slight 2019-08-08 244.0
2045 Slight 2019-08-09 280.0
2046 Slight 2019-08-10 215.0
2047 Slight 2019-08-11 171.0
2048 Slight 2019-08-12 223.0
2049 Slight 2019-08-13 218.0
2050 Slight 2019-08-14 236.0
2051 Slight 2019-08-15 241.0
2052 Slight 2019-08-16 258.0
2053 Slight 2019-08-17 228.0
2054 Slight 2019-08-18 156.0
2055 Slight 2019-08-19 238.0
2056 Slight 2019-08-20 216.0
2057 Slight 2019-08-21 245.0
2058 Slight 2019-08-22 230.0
2059 Slight 2019-08-23 297.0
2060 Slight 2019-08-24 231.0
2061 Slight 2019-08-25 215.0
2062 Slight 2019-08-26 197.0
2063 Slight 2019-08-27 260.0
2064 Slight 2019-08-28 225.0
2065 Slight 2019-08-29 228.0
2066 Slight 2019-08-30 248.0
2067 Slight 2019-08-31 191.0
2068 Slight 2019-09-01 198.0
2069 Slight 2019-09-02 239.0
2070 Slight 2019-09-03 207.0
2071 Slight 2019-09-04 253.0
2072 Slight 2019-09-05 254.0
2073 Slight 2019-09-06 239.0
2074 Slight 2019-09-07 207.0
2075 Slight 2019-09-08 198.0
2076 Slight 2019-09-09 279.0
2077 Slight 2019-09-10 247.0
2078 Slight 2019-09-11 253.0
2079 Slight 2019-09-12 278.0
2080 Slight 2019-09-13 306.0
2081 Slight 2019-09-14 261.0
2082 Slight 2019-09-15 192.0
2083 Slight 2019-09-16 227.0
2084 Slight 2019-09-17 329.0
2085 Slight 2019-09-18 247.0
2086 Slight 2019-09-19 301.0
2087 Slight 2019-09-20 338.0
2088 Slight 2019-09-21 281.0
2089 Slight 2019-09-22 198.0
2090 Slight 2019-09-23 275.0
2091 Slight 2019-09-24 282.0
2092 Slight 2019-09-25 267.0
2093 Slight 2019-09-26 273.0
2094 Slight 2019-09-27 301.0
2095 Slight 2019-09-28 240.0
2096 Slight 2019-09-29 200.0
2097 Slight 2019-09-30 254.0
2098 Slight 2019-10-01 290.0
2099 Slight 2019-10-02 318.0
2100 Slight 2019-10-03 252.0
2101 Slight 2019-10-04 313.0
2102 Slight 2019-10-05 219.0
2103 Slight 2019-10-06 193.0
2104 Slight 2019-10-07 226.0
2105 Slight 2019-10-08 283.0
2106 Slight 2019-10-09 254.0
2107 Slight 2019-10-10 265.0
2108 Slight 2019-10-11 281.0
2109 Slight 2019-10-12 218.0
2110 Slight 2019-10-13 190.0
2111 Slight 2019-10-14 291.0
2112 Slight 2019-10-15 252.0
2113 Slight 2019-10-16 297.0
2114 Slight 2019-10-17 297.0
2115 Slight 2019-10-18 314.0
2116 Slight 2019-10-19 237.0
2117 Slight 2019-10-20 178.0
2118 Slight 2019-10-21 234.0
2119 Slight 2019-10-22 227.0
2120 Slight 2019-10-23 274.0
2121 Slight 2019-10-24 236.0
2122 Slight 2019-10-25 275.0
2123 Slight 2019-10-26 211.0
2124 Slight 2019-10-27 206.0
2125 Slight 2019-10-28 249.0
2126 Slight 2019-10-29 247.0
2127 Slight 2019-10-30 226.0
2128 Slight 2019-10-31 275.0
2129 Slight 2019-11-01 319.0
2130 Slight 2019-11-02 255.0
2131 Slight 2019-11-03 193.0
2132 Slight 2019-11-04 291.0
2133 Slight 2019-11-05 283.0
2134 Slight 2019-11-06 282.0
2135 Slight 2019-11-07 326.0
2136 Slight 2019-11-08 345.0
2137 Slight 2019-11-09 259.0
2138 Slight 2019-11-10 206.0
2139 Slight 2019-11-11 270.0
2140 Slight 2019-11-12 299.0
2141 Slight 2019-11-13 318.0
2142 Slight 2019-11-14 327.0
2143 Slight 2019-11-15 319.0
2144 Slight 2019-11-16 244.0
2145 Slight 2019-11-17 156.0
2146 Slight 2019-11-18 314.0
2147 Slight 2019-11-19 270.0
2148 Slight 2019-11-20 299.0
2149 Slight 2019-11-21 306.0
2150 Slight 2019-11-22 333.0
2151 Slight 2019-11-23 254.0
2152 Slight 2019-11-24 168.0
2153 Slight 2019-11-25 273.0
2154 Slight 2019-11-26 271.0
2155 Slight 2019-11-27 352.0
2156 Slight 2019-11-28 302.0
2157 Slight 2019-11-29 374.0
2158 Slight 2019-11-30 291.0
2159 Slight 2019-12-01 198.0
2160 Slight 2019-12-02 338.0
2161 Slight 2019-12-03 324.0
2162 Slight 2019-12-04 389.0
2163 Slight 2019-12-05 333.0
2164 Slight 2019-12-06 315.0
2165 Slight 2019-12-07 212.0
2166 Slight 2019-12-08 192.0
2167 Slight 2019-12-09 263.0
2168 Slight 2019-12-10 294.0
2169 Slight 2019-12-11 322.0
2170 Slight 2019-12-12 326.0
2171 Slight 2019-12-13 305.0
2172 Slight 2019-12-14 234.0
2173 Slight 2019-12-15 179.0
2174 Slight 2019-12-16 291.0
2175 Slight 2019-12-17 283.0
2176 Slight 2019-12-18 318.0
2177 Slight 2019-12-19 283.0
2178 Slight 2019-12-20 352.0
2179 Slight 2019-12-21 255.0
2180 Slight 2019-12-22 171.0
2181 Slight 2019-12-23 274.0
2182 Slight 2019-12-24 201.0
2183 Slight 2019-12-25 105.0
2184 Slight 2019-12-26 97.0
2185 Slight 2019-12-27 157.0
2186 Slight 2019-12-28 140.0
2187 Slight 2019-12-29 118.0
2188 Slight 2019-12-30 191.0
2189 Slight 2019-12-31 168.0
In [34]:
def test_stationarity(df):

    #Compute Rolling Stats:
    rolling_mean = df.rolling(12).mean()
    rolling_std = df.rolling(12).std()

    #Plotting Rolling Stats:
    rolling_mean['id'] = 'rolling-mean'
    rolling_std['id'] = 'rolling-std'
    df['id'] = 'original'
    plotting = pd.concat([df, rolling_mean, rolling_std])
    plotting.columns = ['value', 'id']
    plotting['date'] = plotting.index
    fig = px.line(plotting,
                  x='date',
                  y='value',
                  line_group='id',
                  hover_name='id',
                  color='id',
                  title='Viz for Rolling Stats')
    fig.update_xaxes(
        rangeslider_visible=True,
        rangeselector=dict(
            buttons=list([
                dict(count=1, label="1m", step="month", stepmode="backward"),
                dict(count=6, label="6m", step="month", stepmode="backward"),
                dict(count=1, label="YTD", step="year", stepmode="todate"),
                dict(count=1, label="1y", step="year", stepmode="backward"),
                dict(step="all")
            ])
        )
    )
    fig.show()
    
    #Dickey-Fuller Test:
    print('ADFuller Test Results-', '\n')
    df = df.drop(columns=['id'])
    dftest = adfuller(df.iloc[:,0], autolag='AIC')
    dfoutput = pd.Series(dftest[0:4], index=['Test Statistic','p-value','#Lags Used','Number of Observations Used'])
    for key,value in dftest[4].items():
        dfoutput['Critical Value (%s)'%key] = value
    print(dfoutput)
In [35]:
test_stationarity(time[time['Accident_Severity']=='Fatal'][['Date', 0]].set_index('Date'))
test_stationarity(time[time['Accident_Severity']=='Serious'][['Date', 0]].set_index('Date'))
test_stationarity(time[time['Accident_Severity']=='Slight'][['Date', 0]].set_index('Date'))
ADFuller Test Results- 

Test Statistic                -9.186216e+00
p-value                        2.184083e-15
#Lags Used                     5.000000e+00
Number of Observations Used    7.240000e+02
Critical Value (1%)           -3.439414e+00
Critical Value (5%)           -2.865540e+00
Critical Value (10%)          -2.568900e+00
dtype: float64
ADFuller Test Results- 

Test Statistic                  -4.012797
p-value                          0.001345
#Lags Used                      14.000000
Number of Observations Used    715.000000
Critical Value (1%)             -3.439529
Critical Value (5%)             -2.865591
Critical Value (10%)            -2.568927
dtype: float64
ADFuller Test Results- 

Test Statistic                  -3.541004
p-value                          0.006994
#Lags Used                      20.000000
Number of Observations Used    709.000000
Critical Value (1%)             -3.439607
Critical Value (5%)             -2.865625
Critical Value (10%)            -2.568945
dtype: float64
In [36]:
total = time[time['Accident_Severity'] == 'Slight'][['Date',
                                                     0]].set_index('Date')
total[0] = total[0] + time[time['Accident_Severity'] == 'Fatal'][[
    'Date', 0
]].set_index('Date')[0] + time[time['Accident_Severity'] == 'Serious'][[
    'Date', 0
]].set_index('Date')[0]
In [37]:
test_stationarity(total)
ADFuller Test Results- 

Test Statistic                  -3.558884
p-value                          0.006598
#Lags Used                      20.000000
Number of Observations Used    709.000000
Critical Value (1%)             -3.439607
Critical Value (5%)             -2.865625
Critical Value (10%)            -2.568945
dtype: float64
In [38]:
total.reset_index(inplace=True)
total = total.resample('M', on='Date').sum()
decomposition = seasonal_decompose(total)

trend = decomposition.trend
seasonal = decomposition.seasonal
residual = decomposition.resid

plt.subplot(411)
plt.plot(total, label='Original')
plt.legend(loc='best')
plt.subplot(412)
plt.plot(trend, label='Trend')
plt.legend(loc='best')
plt.subplot(413)
plt.plot(seasonal,label='Seasonality')
plt.legend(loc='best')
plt.subplot(414)
plt.plot(residual, label='Residuals')
plt.legend(loc='best')
plt.tight_layout()

#px.line(seasonal, x=seasonal.index , y=0)

It can be noted from the rolling statistics graph for daily fatalities that there's a sudden increase in the number of deaths during New-Year's time as compared to other months. But this trend is quite the opposite for serious and slight accidents. This could be due to high number of drunk-driving cases on new-years. Looking at the total accident cases' rolling statistics show that the total accident cases drop the most during new-years but peak during the month of July 2018. There is also an indication of a rough trend of seasonality in the daily accident cases.
The Dickey-Fuller test of stationarity gives the result that the time series is stationary as the p-value < 0.05 and Test-statistic < Critical value at 5%.
But, this is the result of conducting the test on data that has a time frequency of 1 day. Due to this high frequency dataset, the noise increases and that results in an overall average of constant trend.
Thus, upon further investigation of monthly data, it is clear that there is a negative trend in the total number of accidents from 2018 to 2020 and a clear seasonal pattern can be detected. The cases rise sharply during the ending months of summer in July and August, then fall suddenly during September and shoot up to a maximum towards the end of the year in November and December. This repeated pattern (observed over the course of 2 years) has a direct correlation with the festive seasons.

In [39]:
day = P(acc, 'Accident_Severity', 'Day_of_Week')
day
Out[39]:
Accident_Severity Day_of_Week Fatal Serious Slight
0 Friday 0.011830 0.185368 0.802802
1 Monday 0.013337 0.183867 0.802796
2 Saturday 0.016344 0.201794 0.781862
3 Sunday 0.017630 0.214514 0.767856
4 Thursday 0.011540 0.187545 0.800915
5 Tuesday 0.012207 0.183989 0.803804
6 Wednesday 0.011461 0.185758 0.802781
In [40]:
time1 = pd.DataFrame(acc.groupby('Time')['Accident_Severity'].value_counts()).unstack().unstack()
time1 = pd.DataFrame(time1['Accident_Severity']).reset_index()
time1.replace(np.nan, 0, inplace=True)
total1 = time1[time1['Accident_Severity'] == 'Slight'][['Time',
                                                     0]].set_index('Time')
total[0] = total[0] + time1[time1['Accident_Severity'] == 'Fatal'][[
    'Time', 0
]].set_index('Time')[0] + time1[time1['Accident_Severity'] == 'Serious'][[
    'Time', 0
]].set_index('Time')[0]

test_stationarity(total1)
ADFuller Test Results- 

Test Statistic                   -1.525997
p-value                           0.520614
#Lags Used                       24.000000
Number of Observations Used    1414.000000
Critical Value (1%)              -3.434983
Critical Value (5%)              -2.863586
Critical Value (10%)             -2.567859
dtype: float64

Saturday and Sundays have a peak probability of Fatal accidents due to the fact that there are more vehicles on the road on the weekend since its a holiday. Looking at the time of the day for accidents, there are 2 sharp peaks in the accident rates, at around 8:30 AM and in the evening between 4-7 PM. This makes sense since these timings during the day are rush-hours and increase the probability of an accident.

Analyzing Traffic Data

Since the event of an accident is not only dependent on external environmental factors, but also on the other vehicles present on the road during the event, incorporating relevant traffic data would improve the predictive power of the dataset.

Using Hourly Traffic Data

In [123]:
traffic = pd.read_csv('./data/dft_traffic_counts_raw_counts.csv')
traffic.head(50)
Out[123]:
count_point_id direction_of_travel year count_date hour region_id region_name local_authority_id local_authority_name road_name road_type start_junction_road_name end_junction_road_name easting northing latitude longitude link_length_km link_length_miles pedal_cycles two_wheeled_motor_vehicles cars_and_taxis buses_and_coaches lgvs hgvs_2_rigid_axle hgvs_3_rigid_axle hgvs_4_or_more_rigid_axle hgvs_3_or_4_articulated_axle hgvs_5_articulated_axle hgvs_6_articulated_axle all_hgvs all_motor_vehicles
0 52 E 2019 06-09-2019 17 1 South West 1 Isles of Scilly A3112 Major A3111 A3110 91203 10217 49.912239 -6.302848 2.0 1.24 6 1 16 0 8 0 0 0 0 0 0 0 25
1 52 E 2019 06-09-2019 12 1 South West 1 Isles of Scilly A3112 Major A3111 A3110 91203 10217 49.912239 -6.302848 2.0 1.24 9 1 28 0 8 0 0 0 0 0 0 0 37
2 52 E 2019 06-09-2019 14 1 South West 1 Isles of Scilly A3112 Major A3111 A3110 91203 10217 49.912239 -6.302848 2.0 1.24 7 0 18 0 9 0 0 0 0 0 0 0 27
3 52 W 2019 06-09-2019 14 1 South West 1 Isles of Scilly A3112 Major A3111 A3110 91203 10217 49.912239 -6.302848 2.0 1.24 3 1 20 1 11 0 0 0 0 0 0 0 33
4 52 W 2019 06-09-2019 12 1 South West 1 Isles of Scilly A3112 Major A3111 A3110 91203 10217 49.912239 -6.302848 2.0 1.24 3 0 19 1 9 0 0 0 0 0 0 0 29
5 52 W 2019 06-09-2019 17 1 South West 1 Isles of Scilly A3112 Major A3111 A3110 91203 10217 49.912239 -6.302848 2.0 1.24 4 2 8 1 12 0 0 0 0 0 0 0 23
6 52 W 2019 06-09-2019 18 1 South West 1 Isles of Scilly A3112 Major A3111 A3110 91203 10217 49.912239 -6.302848 2.0 1.24 4 0 13 0 6 0 0 0 0 0 0 0 19
7 52 E 2019 06-09-2019 9 1 South West 1 Isles of Scilly A3112 Major A3111 A3110 91203 10217 49.912239 -6.302848 2.0 1.24 4 0 19 0 12 1 0 0 0 0 0 1 32
8 52 W 2019 06-09-2019 10 1 South West 1 Isles of Scilly A3112 Major A3111 A3110 91203 10217 49.912239 -6.302848 2.0 1.24 3 1 24 1 12 0 0 0 0 0 0 0 38
9 52 E 2019 06-09-2019 8 1 South West 1 Isles of Scilly A3112 Major A3111 A3110 91203 10217 49.912239 -6.302848 2.0 1.24 4 1 9 0 7 0 0 0 0 0 0 0 17
10 52 E 2019 06-09-2019 18 1 South West 1 Isles of Scilly A3112 Major A3111 A3110 91203 10217 49.912239 -6.302848 2.0 1.24 0 1 10 0 3 0 0 0 0 0 0 0 14
11 52 W 2019 06-09-2019 15 1 South West 1 Isles of Scilly A3112 Major A3111 A3110 91203 10217 49.912239 -6.302848 2.0 1.24 5 1 27 1 22 0 0 0 0 0 0 0 51
12 52 E 2019 06-09-2019 13 1 South West 1 Isles of Scilly A3112 Major A3111 A3110 91203 10217 49.912239 -6.302848 2.0 1.24 8 0 22 0 6 0 0 0 0 0 0 0 28
13 52 E 2019 06-09-2019 10 1 South West 1 Isles of Scilly A3112 Major A3111 A3110 91203 10217 49.912239 -6.302848 2.0 1.24 7 1 20 0 7 2 0 0 0 0 0 2 30
14 52 W 2019 06-09-2019 16 1 South West 1 Isles of Scilly A3112 Major A3111 A3110 91203 10217 49.912239 -6.302848 2.0 1.24 6 2 17 1 16 0 0 0 0 0 0 0 36
15 52 E 2019 06-09-2019 11 1 South West 1 Isles of Scilly A3112 Major A3111 A3110 91203 10217 49.912239 -6.302848 2.0 1.24 8 2 14 0 7 0 0 0 0 0 0 0 23
16 52 E 2019 06-09-2019 7 1 South West 1 Isles of Scilly A3112 Major A3111 A3110 91203 10217 49.912239 -6.302848 2.0 1.24 3 1 4 0 4 0 0 0 0 0 0 0 9
17 52 W 2019 06-09-2019 7 1 South West 1 Isles of Scilly A3112 Major A3111 A3110 91203 10217 49.912239 -6.302848 2.0 1.24 4 0 10 0 6 0 0 0 0 0 0 0 16
18 52 W 2019 06-09-2019 8 1 South West 1 Isles of Scilly A3112 Major A3111 A3110 91203 10217 49.912239 -6.302848 2.0 1.24 41 2 33 0 10 0 0 0 0 0 0 0 45
19 52 W 2019 06-09-2019 13 1 South West 1 Isles of Scilly A3112 Major A3111 A3110 91203 10217 49.912239 -6.302848 2.0 1.24 3 0 15 0 11 1 0 0 0 0 0 1 27
20 52 W 2019 06-09-2019 9 1 South West 1 Isles of Scilly A3112 Major A3111 A3110 91203 10217 49.912239 -6.302848 2.0 1.24 10 3 20 1 16 1 0 0 0 0 0 1 41
21 52 E 2019 06-09-2019 15 1 South West 1 Isles of Scilly A3112 Major A3111 A3110 91203 10217 49.912239 -6.302848 2.0 1.24 29 1 33 0 11 0 0 0 0 0 0 0 45
22 52 W 2019 06-09-2019 11 1 South West 1 Isles of Scilly A3112 Major A3111 A3110 91203 10217 49.912239 -6.302848 2.0 1.24 3 2 7 1 21 0 0 0 0 0 0 0 31
23 52 E 2019 06-09-2019 16 1 South West 1 Isles of Scilly A3112 Major A3111 A3110 91203 10217 49.912239 -6.302848 2.0 1.24 9 1 13 0 7 0 0 0 0 0 0 0 21
24 6016 W 2019 02-10-2019 14 1 South West 68 Wiltshire M4 Major LA Boundary 17 389200 179080 51.510542 -2.157015 10.0 6.21 0 5 1522 7 554 44 19 11 18 67 95 254 2342
25 6016 E 2019 02-10-2019 10 1 South West 68 Wiltshire M4 Major LA Boundary 17 389200 179080 51.510542 -2.157015 10.0 6.21 0 5 1124 14 351 52 12 15 20 90 84 273 1767
26 6016 W 2019 02-10-2019 9 1 South West 68 Wiltshire M4 Major LA Boundary 17 389200 179080 51.510542 -2.157015 10.0 6.21 0 12 1352 11 336 19 10 11 10 85 43 178 1889
27 6016 E 2019 02-10-2019 7 1 South West 68 Wiltshire M4 Major LA Boundary 17 389200 179080 51.510542 -2.157015 10.0 6.21 0 9 2284 11 701 55 13 20 9 72 58 227 3232
28 6016 E 2019 02-10-2019 9 1 South West 68 Wiltshire M4 Major LA Boundary 17 389200 179080 51.510542 -2.157015 10.0 6.21 0 5 1434 14 411 47 10 10 11 86 84 248 2112
29 6016 E 2019 02-10-2019 13 1 South West 68 Wiltshire M4 Major LA Boundary 17 389200 179080 51.510542 -2.157015 10.0 6.21 0 4 1337 10 366 48 7 14 14 102 77 262 1979
30 6016 W 2019 02-10-2019 15 1 South West 68 Wiltshire M4 Major LA Boundary 17 389200 179080 51.510542 -2.157015 10.0 6.21 0 5 1843 11 614 61 8 7 13 67 112 268 2741
31 6016 W 2019 02-10-2019 16 1 South West 68 Wiltshire M4 Major LA Boundary 17 389200 179080 51.510542 -2.157015 10.0 6.21 0 7 1468 8 446 22 4 14 6 29 52 127 2056
32 6016 E 2019 02-10-2019 16 1 South West 68 Wiltshire M4 Major LA Boundary 17 389200 179080 51.510542 -2.157015 10.0 6.21 0 6 1999 7 407 42 1 3 13 78 62 199 2618
33 6016 E 2019 02-10-2019 11 1 South West 68 Wiltshire M4 Major LA Boundary 17 389200 179080 51.510542 -2.157015 10.0 6.21 0 1 1248 10 333 36 7 9 15 82 94 243 1835
34 6016 W 2019 02-10-2019 10 1 South West 68 Wiltshire M4 Major LA Boundary 17 389200 179080 51.510542 -2.157015 10.0 6.21 0 1 1307 18 341 31 12 14 14 96 78 245 1912
35 6016 E 2019 02-10-2019 17 1 South West 68 Wiltshire M4 Major LA Boundary 17 389200 179080 51.510542 -2.157015 10.0 6.21 0 8 1981 14 286 23 2 2 12 85 74 198 2487
36 6016 E 2019 02-10-2019 18 1 South West 68 Wiltshire M4 Major LA Boundary 17 389200 179080 51.510542 -2.157015 10.0 6.21 0 4 1422 10 224 26 2 1 9 77 46 161 1821
37 6016 W 2019 02-10-2019 8 1 South West 68 Wiltshire M4 Major LA Boundary 17 389200 179080 51.510542 -2.157015 10.0 6.21 0 11 1657 1 349 29 5 9 6 78 80 207 2225
38 6016 E 2019 02-10-2019 8 1 South West 68 Wiltshire M4 Major LA Boundary 17 389200 179080 51.510542 -2.157015 10.0 6.21 0 8 2174 8 574 87 11 18 6 63 105 290 3054
39 6016 E 2019 02-10-2019 14 1 South West 68 Wiltshire M4 Major LA Boundary 17 389200 179080 51.510542 -2.157015 10.0 6.21 0 4 1403 20 407 50 6 13 9 128 74 280 2114
40 6016 E 2019 02-10-2019 15 1 South West 68 Wiltshire M4 Major LA Boundary 17 389200 179080 51.510542 -2.157015 10.0 6.21 0 9 1728 11 429 36 6 9 19 92 91 253 2430
41 6016 W 2019 02-10-2019 7 1 South West 68 Wiltshire M4 Major LA Boundary 17 389200 179080 51.510542 -2.157015 10.0 6.21 0 7 1961 1 481 40 9 5 6 79 96 235 2685
42 6016 E 2019 02-10-2019 12 1 South West 68 Wiltshire M4 Major LA Boundary 17 389200 179080 51.510542 -2.157015 10.0 6.21 0 1 1157 12 334 45 7 11 13 93 79 248 1752
43 6016 W 2019 02-10-2019 11 1 South West 68 Wiltshire M4 Major LA Boundary 17 389200 179080 51.510542 -2.157015 10.0 6.21 0 8 1254 3 378 27 14 8 13 74 76 212 1855
44 6016 W 2019 02-10-2019 12 1 South West 68 Wiltshire M4 Major LA Boundary 17 389200 179080 51.510542 -2.157015 10.0 6.21 0 7 1243 15 387 46 7 17 14 79 97 260 1912
45 6016 W 2019 02-10-2019 13 1 South West 68 Wiltshire M4 Major LA Boundary 17 389200 179080 51.510542 -2.157015 10.0 6.21 0 7 1247 9 448 46 8 20 15 45 88 222 1933
46 6016 W 2019 02-10-2019 17 1 South West 68 Wiltshire M4 Major LA Boundary 17 389200 179080 51.510542 -2.157015 10.0 6.21 0 12 1696 5 351 15 3 2 4 18 44 86 2150
47 6016 W 2019 02-10-2019 18 1 South West 68 Wiltshire M4 Major LA Boundary 17 389200 179080 51.510542 -2.157015 10.0 6.21 0 7 1613 7 249 14 3 3 8 22 23 73 1949
48 6019 S 2019 17-06-2019 10 1 South West 70 Gloucestershire M5 Major 11 10 389660 223200 51.907239 -2.151710 4.7 2.92 0 2 2651 15 519 133 14 13 17 35 250 462 3649
49 6019 S 2019 17-06-2019 12 1 South West 70 Gloucestershire M5 Major 11 10 389660 223200 51.907239 -2.151710 4.7 2.92 0 14 2548 16 423 107 14 17 23 21 198 380 3381
In [124]:
traffic.year.value_counts()
Out[124]:
2019    301944
2018    289848
2017    186468
2016    166824
2015    103491
Name: year, dtype: int64

Since the study only involves 2018 and 2019, drop the previous years

In [125]:
traffic = traffic[(traffic['year']==2018) | (traffic['year']==2019)]
In [126]:
traffic.shape
Out[126]:
(591792, 32)

Computing the mean number of vehicle_types for each count_point_id and hour of the day

In [127]:
traffic['all_gvs'] = traffic['all_hgvs']+traffic['lgvs']+traffic1['buses_and_coaches']
In [128]:
traffic1 = pd.DataFrame(
    traffic.groupby(['count_point_id',
                     'hour', 'latitude', 'longitude', 'year'])['link_length_km', 'pedal_cycles',
                              'two_wheeled_motor_vehicles', 'cars_and_taxis',
                              'all_gvs'].sum()).reset_index()
traffic1 = pd.DataFrame(
    traffic1.groupby(['count_point_id',
                     'hour', 'latitude', 'longitude'])['link_length_km', 'pedal_cycles',
                              'two_wheeled_motor_vehicles', 'cars_and_taxis',
                              'all_gvs'].mean()).reset_index()
traffic1
Out[128]:
count_point_id hour latitude longitude link_length_km pedal_cycles two_wheeled_motor_vehicles cars_and_taxis all_gvs
0 52 7 49.912239 -6.302848 4.0 7.0 1.0 14.0 19.0
1 52 8 49.912239 -6.302848 4.0 45.0 3.0 42.0 27.0
2 52 9 49.912239 -6.302848 4.0 14.0 3.0 39.0 36.0
3 52 10 49.912239 -6.302848 4.0 10.0 2.0 44.0 31.0
4 52 11 49.912239 -6.302848 4.0 11.0 4.0 21.0 39.0
... ... ... ... ... ... ... ... ... ...
251347 996768 14 57.146594 -2.088728 0.0 0.0 0.0 394.0 0.0
251348 996768 15 57.146594 -2.088728 0.0 0.0 0.0 213.0 0.0
251349 996768 16 57.146594 -2.088728 0.0 0.0 0.0 416.0 0.0
251350 996768 17 57.146594 -2.088728 0.0 0.0 0.0 332.0 0.0
251351 996768 18 57.146594 -2.088728 0.0 0.0 0.0 150.0 0.0

251352 rows × 9 columns

In [129]:
traffic1.shape
Out[129]:
(251352, 9)
In [115]:
del traffic
In [116]:
traffic1.hour.value_counts()
Out[116]:
18    20946
17    20946
16    20946
15    20946
14    20946
13    20946
12    20946
11    20946
10    20946
9     20946
8     20946
7     20946
Name: hour, dtype: int64
In [138]:
def plot(col):
    tplot = pd.DataFrame(traffic1.groupby('hour')[col].mean()).reset_index()
    fig = px.line(tplot, x='hour', y=col)
    fig.show()
In [148]:
plot('cars_and_taxis')
In [193]:
tplot = pd.DataFrame(traffic1.groupby('hour')['cars_and_taxis'].mean()).reset_index()
tplot['hr_sin'] = tplot.hour*(2.*np.pi/24)
x = tplot['hr_sin']
y = tplot['cars_and_taxis']
f = interpolate.interp1d(x, y, kind='nearest', fill_value = 'extrapolate')
In [194]:
xnew = np.append(np.array(tplot['hour']), [0,1,2,3,4,5,6,19,20,21,22,23])
xnew = xnew*(2.*np.pi/24)
ynew = f(xnew)
plt.plot(x, y, 'o', xnew, ynew, '-')
plt.show()

Since every count_point_id has vehicle counts for only the major hours of the day when the traffic is at its peak (0007 - 1800), the method of cubic spline interpolation is tried in order to compute the missing values for hours between 0000-0007 and 1800-0000. Since this must be done for each and every count_point_id individually since each of them have varying traffic counts, there are extremely less datums per counting point for efficient extrapolation of the function on the uncovered hours. Thus, instead of using raw traffic data per hour, AADF traffic data is used for the years 2018-2019

In [196]:
del traffic1

Using AADF Traffic Data

The annual average daily flow (AADF) of traffic is measured at various points on major and minor roads across the UK, according to the type of vehicle.

In [43]:
traffic = pd.read_csv('./data/dft_traffic_counts_aadf.csv')
traffic = traffic[(traffic['year']==2018) | (traffic['year']==2019)]
traffic = traffic[[
    'count_point_id', 'road_name', 'latitude', 'longitude', 'pedal_cycles',
    'two_wheeled_motor_vehicles', 'cars_and_taxis', 'buses_and_coaches', 'lgvs', 'all_hgvs'
]]
traffic = pd.DataFrame(traffic.groupby('count_point_id').mean()).reset_index()
traffic.head()
Out[43]:
count_point_id latitude longitude pedal_cycles two_wheeled_motor_vehicles cars_and_taxis buses_and_coaches lgvs all_hgvs
0 51 49.915021 -6.317073 244.0 96.5 545.5 25.0 450.0 43.5
1 52 49.912291 -6.304267 163.0 51.0 537.5 7.5 247.5 8.5
2 53 49.917139 -6.306114 184.5 88.5 795.0 7.0 427.5 21.5
3 54 49.917809 -6.298996 63.0 55.0 346.5 6.0 298.5 37.0
4 55 49.918583 -6.295093 34.5 20.5 167.5 0.0 179.5 16.0

Using Population Density Statistics

The population density of an area (LSOA) indicates how crowded a region is and thus adds on to the data that indicates the intensity of activity in each region. This helps understand the factors that contribute to the event of an accident and may thus improve the predictive power of the Classifier.

The population counts of all areas of UK have been used from UK's most recent national Census of 2011.

In [14]:
population = pd.read_csv('./data/census_2011.csv')
population.head()
Out[14]:
date geography geography code Rural Urban Variable: All usual residents; measures: Value Variable: Males; measures: Value Variable: Females; measures: Value Variable: Lives in a household; measures: Value Variable: Lives in a communal establishment; measures: Value Variable: Schoolchild or full-time student aged 4 and over at their non term-time address; measures: Value Variable: Area (Hectares); measures: Value Variable: Density (number of persons per hectare); measures: Value
0 2011 Darlington 001B E01012334 Total 2466 1220 1246 2466 0 42 6033.58 0.4
1 2011 Darlington 001C E01012335 Total 1383 682 701 1383 0 21 114.01 12.1
2 2011 Darlington 001D E01012366 Total 2008 972 1036 2008 0 30 6718.16 0.3
3 2011 Darlington 001E E01033481 Total 1364 680 684 1350 14 21 146.95 9.3
4 2011 Darlington 001F E01033482 Total 1621 810 811 1621 0 16 234.31 6.9
In [15]:
population = population[['geography code', 'Variable: Density (number of persons per hectare); measures: Value']]
population.columns = ['LSOA', 'pop_density']
population.head()
Out[15]:
LSOA pop_density
0 E01012334 0.4
1 E01012335 12.1
2 E01012366 0.3
3 E01033481 9.3
4 E01033482 6.9

Merging and Preparing Dataset

Merging Population Density data with accident data using LSOA

In [41]:
data = pd.merge(left=acc, right=population, how='left', left_on='LSOA_of_Accident_Location', right_on='LSOA')
data
Out[41]:
Accident_Index LSOA_of_Accident_Location Longitude Latitude Date Day_of_Week Time 1st_Road_Class Road_Type Speed_limit Junction_Detail Light_Conditions Weather_Conditions Road_Surface_Conditions Urban_or_Rural_Area Accident_Severity LSOA pop_density
0 2018010080971 E01000854 -0.139737 51.524587 01/01/2018 Monday 01:30 A Dual carriageway 30 MPH Not at junction or within 20 metres Darkness - lights lit Fine no high winds Dry Urban Slight E01000854 97.1
1 2018010080973 E01003531 0.046471 51.539651 01/01/2018 Monday 00:50 B Single carriageway 30 MPH Mini-roundabout Darkness - lights lit Fine no high winds Dry Urban Slight E01003531 89.8
2 2018010080974 E01002723 -0.102474 51.529746 01/01/2018 Monday 00:45 A Single carriageway 20 MPH Crossroads Darkness - lights lit Fine no high winds Dry Urban Slight E01002723 149.2
3 2018010080981 E01003492 0.037828 51.530179 01/01/2018 Monday 03:00 B Dual carriageway 30 MPH More than 4 arms (not roundabout) Darkness - lights lit Raining no high winds Wet or damp Urban Serious E01003492 212.0
4 2018010080982 E01001682 0.065781 51.469258 01/01/2018 Monday 02:20 A Single carriageway 30 MPH Not at junction or within 20 metres Darkness - lights lit Fine no high winds Wet or damp Urban Serious E01001682 15.3
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
227936 201963DF02919 W01000457 -3.094841 52.739912 17/08/2019 Saturday 16:29 A Single carriageway 60 MPH Not at junction or within 20 metres Daylight Fine no high winds Dry Rural Fatal W01000457 0.5
227937 201963DF03019 W01000427 -3.322442 52.335266 25/08/2019 Sunday 11:40 A Single carriageway 60 MPH Not at junction or within 20 metres Daylight Fine no high winds Dry Rural Fatal W01000427 0.1
227938 201963DF03319 W01000429 -3.515306 52.506924 22/09/2019 Sunday 23:15 B Single carriageway 30 MPH Not at junction or within 20 metres Darkness - lights lit Raining no high winds Wet or damp Rural Fatal W01000429 0.1
227939 201963DF03419 W01000471 -3.651922 52.097790 05/10/2019 Saturday 12:50 A Single carriageway 60 MPH Not at junction or within 20 metres Daylight Fine no high winds Dry Rural Fatal W01000471 0.1
227940 201963DF03619 W01000474 -3.544971 51.921926 03/11/2019 Sunday 15:10 A Single carriageway 60 MPH Not at junction or within 20 metres Daylight Fine no high winds Dry Rural Fatal W01000474 0.1

227941 rows × 18 columns

In [42]:
data.shape
Out[42]:
(227941, 18)

In order to merge traffic value counts with the accident data, there is no common key value such as LSOA. The keys for traffic counts are the count_point_ids that indicate the roads where the counts were taken. Thus, in order to add traffic data to the accident events, the (latitude, longitude) coordinates are used. By comparing the nearest/closest coordinates of traffic count_point_ids and the accident events, the traffic counts can be added to each accident event.

A simple brute force search for the nearest neighbors amongst the two datasets would take an immense amount of time due to the large volume of data. Thus, the KDTree algorithm (using the sliding midpoint rule), as described in Maneewongvatana and Mount 1999, is used in order to efficiently calculate the nearest neighbor for each coordinate across datasets.

In [46]:
tree = cKDTree(traffic[['longitude', 'latitude']])
d,i = tree.query(data[['Longitude', 'Latitude']])
traffic = traffic.loc[i]
traffic.reset_index(inplace=True, drop=True)
data = pd.concat([data, traffic], axis=1)
data
Out[46]:
Accident_Index LSOA_of_Accident_Location Longitude Latitude Date Day_of_Week Time 1st_Road_Class Road_Type Speed_limit Junction_Detail Light_Conditions Weather_Conditions Road_Surface_Conditions Urban_or_Rural_Area Accident_Severity LSOA pop_density count_point_id latitude longitude pedal_cycles two_wheeled_motor_vehicles cars_and_taxis buses_and_coaches lgvs all_hgvs
0 2018010080971 E01000854 -0.139737 51.524587 01/01/2018 Monday 01:30 A Dual carriageway 30 MPH Not at junction or within 20 metres Darkness - lights lit Fine no high winds Dry Urban Slight E01000854 97.1 47245 51.524223 -0.141882 1552.5 3982.0 53957.5 1822.5 14522.0 1678.0
1 2018010080973 E01003531 0.046471 51.539651 01/01/2018 Monday 00:50 B Single carriageway 30 MPH Mini-roundabout Darkness - lights lit Fine no high winds Dry Urban Slight E01003531 89.8 942818 51.536955 0.040555 19.5 5.0 277.5 2.0 46.0 1.0
2 2018010080974 E01002723 -0.102474 51.529746 01/01/2018 Monday 00:45 A Single carriageway 20 MPH Crossroads Darkness - lights lit Fine no high winds Dry Urban Slight E01002723 149.2 57902 51.530545 -0.102034 346.0 1302.0 10112.5 358.0 3115.0 603.5
3 2018010080981 E01003492 0.037828 51.530179 01/01/2018 Monday 03:00 B Dual carriageway 30 MPH More than 4 arms (not roundabout) Darkness - lights lit Raining no high winds Wet or damp Urban Serious E01003492 212.0 942818 51.536955 0.040555 19.5 5.0 277.5 2.0 46.0 1.0
4 2018010080982 E01001682 0.065781 51.469258 01/01/2018 Monday 02:20 A Single carriageway 30 MPH Not at junction or within 20 metres Darkness - lights lit Fine no high winds Wet or damp Urban Serious E01001682 15.3 73053 51.468839 0.069104 106.5 294.5 14014.0 466.5 2020.5 119.5
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
227936 201963DF02919 W01000457 -3.094841 52.739912 17/08/2019 Saturday 16:29 A Single carriageway 60 MPH Not at junction or within 20 metres Daylight Fine no high winds Dry Rural Fatal W01000457 0.5 812002 52.759171 -3.084242 23.0 3.0 810.0 13.0 181.0 48.0
227937 201963DF03019 W01000427 -3.322442 52.335266 25/08/2019 Sunday 11:40 A Single carriageway 60 MPH Not at junction or within 20 metres Daylight Fine no high winds Dry Rural Fatal W01000427 0.1 50547 52.300400 -3.321252 0.0 50.5 2765.5 21.0 684.5 141.5
227938 201963DF03319 W01000429 -3.515306 52.506924 22/09/2019 Sunday 23:15 B Single carriageway 30 MPH Not at junction or within 20 metres Darkness - lights lit Raining no high winds Wet or damp Rural Fatal W01000429 0.1 951275 52.481222 -3.527229 3.0 5.0 941.5 11.5 175.0 18.5
227939 201963DF03419 W01000471 -3.651922 52.097790 05/10/2019 Saturday 12:50 A Single carriageway 60 MPH Not at junction or within 20 metres Daylight Fine no high winds Dry Rural Fatal W01000471 0.1 20554 52.133923 -3.608538 0.0 28.0 1642.0 18.5 486.5 239.5
227940 201963DF03619 W01000474 -3.544971 51.921926 03/11/2019 Sunday 15:10 A Single carriageway 60 MPH Not at junction or within 20 metres Daylight Fine no high winds Dry Rural Fatal W01000474 0.1 50653 51.912263 -3.529769 3.5 64.5 791.0 0.0 337.5 45.0

227941 rows × 27 columns

In [47]:
data.shape
Out[47]:
(227941, 27)

Now that the datasets have been merged, looking at the distances between coordinates from each dataset that have been picked as nearest neighbors

In [48]:
# Haversine Formula for computing distances between coordinates
def distance(lat1, lon1, lat2, lon2):
    p = 0.017453292519943295
    a = 0.5 - cos(
        (lat2 - lat1) * p) / 2 + cos(lat1 * p) * cos(lat2 * p) * (1 - cos(
            (lon2 - lon1) * p)) / 2
    return (12742 * asin(sqrt(a))) * 1000
In [49]:
data['distance'] = data.apply(lambda x: distance(x.latitude, x.longitude, x.Latitude, x.Longitude), axis=1)
In [50]:
data['distance'].describe()
Out[50]:
count    227941.000000
mean        590.496963
std         673.412777
min           0.000000
25%         194.007850
50%         385.870443
75%         711.834689
max       16284.173724
Name: distance, dtype: float64

The statistics of the distances between the 2 set of coordinates show that a majority of the distances are under 711 meters. Thus, the count points have more or less been successfully merged according to the coordinates. The max distance is 16kms and that may be due to the unavailability of a counting point near the accident location due to it being a non-major road in a rural area.

In [51]:
data.columns
Out[51]:
Index(['Accident_Index', 'LSOA_of_Accident_Location', 'Longitude', 'Latitude',
       'Date', 'Day_of_Week', 'Time', '1st_Road_Class', 'Road_Type',
       'Speed_limit', 'Junction_Detail', 'Light_Conditions',
       'Weather_Conditions', 'Road_Surface_Conditions', 'Urban_or_Rural_Area',
       'Accident_Severity', 'LSOA', 'pop_density', 'count_point_id',
       'latitude', 'longitude', 'pedal_cycles', 'two_wheeled_motor_vehicles',
       'cars_and_taxis', 'buses_and_coaches', 'lgvs', 'all_hgvs', 'distance'],
      dtype='object')
In [52]:
data = data[['Accident_Index', 'Longitude', 'Latitude',
       'Date', 'Day_of_Week', 'Time', '1st_Road_Class', 'Road_Type',
       'Speed_limit', 'Junction_Detail', 'Light_Conditions',
       'Weather_Conditions', 'Road_Surface_Conditions', 'Urban_or_Rural_Area',
       'Accident_Severity', 'pop_density', 'count_point_id',
       'pedal_cycles', 'two_wheeled_motor_vehicles',
       'cars_and_taxis', 'buses_and_coaches', 'lgvs', 'all_hgvs']]

Time stamp based categorical features have been converted to cyclic - sinusoidal based continuous valued variables. This is to emphasize on the cyclic nature of time during the day, days of the week and the months of the year. This helps establish numeric relations within the feature and add more context to the judgement of the predictor.

In [53]:
repl = pd.read_excel(f'./data/keys/variable lookup_Day of Week.xls')
data = data.replace({
    'Day_of_Week':
    dict([(i, a) for i, a in zip(repl['label'], repl['code'])])
})
In [54]:
def date_to_sin(s):
    d = {0:0, 1:31, 2:30, 3:31, 4:30, 5:31, 6:30, 7:31, 8:31, 9:30, 10:31, 11:30, 12:31}
    day = int(s[:2]) + np.sum([d[i] for i in range(int(s[3:5]))])
    return sin(day*2*np.pi/365)
In [55]:
data['Time'] = data['Time'].apply(lambda x: sin((3600*int(x[:2]) + 60*int(x[3:]))*2*np.pi/(24*3600)))
data['Day_of_Week'] = data['Day_of_Week'].apply(lambda x: sin(x*2*np.pi/7))
data['Date'] = data['Date'].apply(lambda x: date_to_sin(x))
In [56]:
data
Out[56]:
Accident_Index Longitude Latitude Date Day_of_Week Time 1st_Road_Class Road_Type Speed_limit Junction_Detail Light_Conditions Weather_Conditions Road_Surface_Conditions Urban_or_Rural_Area Accident_Severity pop_density count_point_id pedal_cycles two_wheeled_motor_vehicles cars_and_taxis buses_and_coaches lgvs all_hgvs
0 2018010080971 -0.139737 51.524587 0.017213 9.749279e-01 0.382683 A Dual carriageway 30 MPH Not at junction or within 20 metres Darkness - lights lit Fine no high winds Dry Urban Slight 97.1 47245 1552.5 3982.0 53957.5 1822.5 14522.0 1678.0
1 2018010080973 0.046471 51.539651 0.017213 9.749279e-01 0.216440 B Single carriageway 30 MPH Mini-roundabout Darkness - lights lit Fine no high winds Dry Urban Slight 89.8 942818 19.5 5.0 277.5 2.0 46.0 1.0
2 2018010080974 -0.102474 51.529746 0.017213 9.749279e-01 0.195090 A Single carriageway 20 MPH Crossroads Darkness - lights lit Fine no high winds Dry Urban Slight 149.2 57902 346.0 1302.0 10112.5 358.0 3115.0 603.5
3 2018010080981 0.037828 51.530179 0.017213 9.749279e-01 0.707107 B Dual carriageway 30 MPH More than 4 arms (not roundabout) Darkness - lights lit Raining no high winds Wet or damp Urban Serious 212.0 942818 19.5 5.0 277.5 2.0 46.0 1.0
4 2018010080982 0.065781 51.469258 0.017213 9.749279e-01 0.573576 A Single carriageway 30 MPH Not at junction or within 20 metres Darkness - lights lit Fine no high winds Wet or damp Urban Serious 15.3 73053 106.5 294.5 14014.0 466.5 2020.5 119.5
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
227936 201963DF02919 -3.094841 52.739912 -0.741222 -2.449294e-16 -0.922201 A Single carriageway 60 MPH Not at junction or within 20 metres Daylight Fine no high winds Dry Rural Fatal 0.5 812002 23.0 3.0 810.0 13.0 181.0 48.0
227937 201963DF03019 -3.322442 52.335266 -0.826354 7.818315e-01 0.087156 A Single carriageway 60 MPH Not at junction or within 20 metres Daylight Fine no high winds Dry Rural Fatal 0.1 50547 0.0 50.5 2765.5 21.0 684.5 141.5
227938 201963DF03319 -3.515306 52.506924 -0.993257 7.818315e-01 -0.195090 B Single carriageway 30 MPH Not at junction or within 20 metres Darkness - lights lit Raining no high winds Wet or damp Rural Fatal 0.1 951275 3.0 5.0 941.5 11.5 175.0 18.5
227939 201963DF03419 -3.651922 52.097790 -0.994218 -2.449294e-16 -0.216440 A Single carriageway 60 MPH Not at junction or within 20 metres Daylight Fine no high winds Dry Rural Fatal 0.1 20554 0.0 28.0 1642.0 18.5 486.5 239.5
227940 201963DF03619 -3.544971 51.921926 -0.821477 7.818315e-01 -0.737277 A Single carriageway 60 MPH Not at junction or within 20 metres Daylight Fine no high winds Dry Rural Fatal 0.1 50653 3.5 64.5 791.0 0.0 337.5 45.0

227941 rows × 23 columns

In [58]:
data.to_pickle('./data/struct_dataset.pkl')